nasm/test/defalias.asm
H. Peter Anvin (Intel) e91f5cc132 preproc: fix %undef of macro aliases, and add %ifdefalias
Macro aliases can legitimately point to nonexistent
macros. Furthermore, %undef should remove the pointed-at macro, not
the alias. This led to an infinite loop in the existing code; fix
that.

Add an %ifdefalias directive to test for the existence of an alias.

Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
2019-10-23 12:59:06 -07:00

52 lines
941 B
NASM

%defalias foo bar
%ifdef foo
%error "foo should not be defined here!"
%endif
%define foo 33
%ifndef foo
%error "foo should be defined here!"
%endif
%ifndef bar
%error "bar should be defined here!"
%endif
%if bar != 33
%error "bar should have the value 33 here"
%endif
%define bar 34
%if foo != 34
%error "foo should have the value 34 here"
%endif
%undef foo
%ifdef foo
%error "foo should not be defined here!"
%endif
%ifdef bar
%error "bar should not be defined here!"
%endif
%ifndefalias foo
%error "foo was removed as an alias!"
%endif
%define bar 35
%if foo != 35
%error "foo should have the value 35 here"
%endif
%define foo 36
%if bar != 36
%error "bar should have the value 36 here"
%endif
%undefalias foo
%ifdef foo
%error "foo is still defined after %undefalias"
%elifdefalias foo
%error "foo is undefined, but still an alias"
%endif
%ifndef bar
%error "bar disappeared after %undefalias foo"
%endif