Example 2. Resulting Assembly for Example 1

;*************************************************************** ;* FNAME: _foo_FiPi FR SIZE: 4 * ;* * ;* FUNCTION ENVIRONMENT * ;* * ;* FUNCTION PROPERTIES * ;* 0 Parameter, 3 Auto, 0 SOE * ;*************************************************************** _foo_FiPi: ADDB SP,#4 MOVZ DP,#_last_err$1 MOV *-SP[1],AL MOV AL,@_last_err$1 MOV *-SP[2],AR4 MOV *-SP[3],#0 BF L1,NEQ ; branch occurs MOVL XAR4,#_last_err$1 MOV AL,*-SP[1] LCR #_compute__FiPi ; call occurs [#_compute__FiPi] MOV *-SP[3],AL L1: MOVZ AR6,*-SP[2] MOV *+XAR6[0],*(0:_last_err$1) MOV AL,*-SP[3] SUBB SP,#4 LRETR ; return occurs

Executing the C++ name demangler demangles all names that it believes to be mangled. Enter:

dem2000 foo.asm

The result is shown in Example 3. The linknames in Example 2 foo( ) and compute( ) are demangled.