Хотя вопрос по ASM30, но задам здесь - у ASM30 ведь ноги GNUтые. Каким макаром можно OR'ить .ifdef'ы/.ifdecl'ы или хотя бы .if'ы? Надо пускать ветви условной трансляции по разным ГРУППАМ условий, и хотелось бы сделать не через жопу (с дополнительной переменной), а вот так:
.ifdef bla1 OR bla2 OR bla3
; do something
.elseif bla4 OR bla5
; do something else
.else
; abort
.endif
Разумеется, никакие операторы OR (|,||) не принимаются -
Error: non-constant expression in ".if" statement, что закономерно, когда операнд не определен.
Пока обходился черезжопным образом:
.ifdef bla1
foo = 1
.endif
.ifdef bla2
foo = 2
.endif
.ifdef bla3
foo = 3
.endif
...
.ifndef foo
.error "Bad foo!"
.elseif foo < 3
; do something
.else
; do something else
.endif
Но душа просит гармонии. На какие кнопки жать?