| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- ;Testname=warning; Arguments=-fbin -omacdef.bin -w+macro-defaults; Files=stdout stderr macdef.bin
- ;Testname=nonwarning; Arguments=-fbin -omacdef.bin -w-macro-defaults; Files=stdout stderr macdef.bin
- %MACRO mmac_fix 1 a
- ; While defined to take one parameter, any invocation will
- ; see two, due to the default parameter.
- %warning %0 %1 %2 %3 %4 %5
- %ENDMACRO
- mmac_fix one
- %MACRO mmac_var 1-2 a,b
- ; While defined to take one or two parameters, invocations
- ; will see three, due to the default parameters.
- %warning %0 %1 %2 %3 %4 %5
- %ENDMACRO
- mmac_var one
- mmac_var one,two
- %MACRO mmac_plus 1-2+ a,b
- ; This does not warn. Although this looks like two default
- ; parameters, it ends up being only one: the "+" limits it
- ; to two parameters; if invoked without a second parameter
- ; the second parameter will be "a,b".
- %warning %0 %1 %2 %3 %4 %5
- ;Check rotating behaviour
- %ENDMACRO
- mmac_plus one
- mmac_plus one,two
- mmac_plus one,two,three
- %MACRO mmac_star 1-* a,b
- ; This does not warn. Because the "*" extends the range of
- ; parameters to infinity, the "a,b" default parameters can
- ; not exceed that range.
- %warning %0 %1 %2 %3 %4 %5
- %ENDMACRO
- mmac_star one
- mmac_star one,two
- mmac_star one,two,three
- %MACRO mmac_rotate 0-* a,b
- %warning %0 %1 %2 %3 %4 %5
- ;%rotate should rotate all parameters
- %rotate 1
- %warning %0 %1 %2 %3 %4 %5
- %ENDMACRO
- mmac_rotate
- mmac_rotate one
- mmac_rotate one,two
- mmac_rotate one,two,three
- ;Scope / evaluation time test
- %define I 0
- %assign J 0
- %xdefine K 0
- %MACRO mmac_scope 0 I J K
- %warning %1 %2 %3
- %ENDMACRO
- %define I 1
- %assign J 1
- %xdefine K 1
- mmac_scope
|