Bug: PoASM confused by "FORC ... ENDM"

Started by japheth, June 14, 2007, 01:48:10 PM

Previous topic - Next topic

japheth

Hello,

PoASM has problems with this test case



        .model flat, stdcall

xtest   macro x:req
local y
ifndef __POASM__
        forc chr$,x
        endm
else
y       textequ x
endif
        exitm <y>
        endm

_TEXT   segment
        mov eax,xtest(1)
        ret
_TEXT   ends

        end


PoASM displays

fatal error: invalid use of 'ELSE'       

because it apparently doesn't expect the first ENDM (which "belongs" to the FORC "instruction" and which PoASM should ignore entirely).

Pelle

Not a bug. If you have code with bad syntax you must put the IF* directives at the global level (creating two versions of the macro). You can embed IF* directives in macro, but only when the syntax is correct, and then the IF* expression will be evaluated when the macro is *expanded*.
/Pelle