Two pass assembler diagnostics
The assembler can issue a warning about code that might not be identical in both assembler passes.
The ARM assembler is a two pass assembler and the input code that the assembler reads must be identical in both passes. If a symbol is defined after the :DEF: test for that symbol, then the code read in pass one might be different from the code read in pass two. The assembler can warn in this situation.
To do this, use the following command-line option when invoking the assembler:
armasm --diag_warning 1907
The following example shows that the symbol foo is defined after the :DEF: foo test. Assembling this code with --diag_warning 1907 generates the message:
Warning A1907W: Test for this symbol has been seen and may cause failure in the second pass.
Symbol test before symbol definition
AREA x,CODE [ :DEF: foo ] foo MOV r3, r4 END