Forward attribute-reference scan

If you make an attribute reference to an undeclared symbol, the assembler scans the source code either until it finds the symbol in the name field of a statement in open code, or until it reaches the end of the source module. The assembler makes an entry in the symbol table for the symbol, as well as for any other previously undefined symbols it encounters during the scan. The assembler does not completely check the syntax of the statements for which it makes entries in the symbol table. Therefore, a valid attribute reference can result from a forward scan, even though the statement is later found to be in error and therefore not accepted by the assembler.

You must be careful with the contents of any AREAD input in your source module. If an AREAD input record is encountered before the symbol definition, and the record has the same format as an assembler language statement, and the name field contains the symbol referred to in the attribute reference, then the forward scan will attempt to evaluate that record instead.