ALLOW

Suppress error and warning messages.
Restriction: This topic applies to Windows environments only.

Syntax:

[NO]ALLOW

Properties:

Default: ALLOW

Build Settings:

Type directly into the Additional Directives field on the Assembler tab of your project properties Assembler page.

Comments:

The purpose of the ALLOW option is to provide compatibility with the mainframe, which does not generate error or warning messages for these cases. You may choose to use NOALLOW to improve the quality of your code. One particular benefit is that you can identify all undefined macro labels at macro compile time rather than only when a branch to a label is attempted at execution time.

Enables the following compilation behavior:

  • Allow duplicate variable definitions within macros and ignore all but the first one (that is, allow definitions in a macro that duplicate earlier definitions; whether the earlier definition is in the same macro or is a parameter it overrides the later definition).
  • Allow branches to undefined labels in AIF instructions. (Such branches cause errors during execution). Allow fullword and halfword definitions to have values enclosed in parentheses as well as single quotes; for example you can code F(D0) or F'D0'
  • Allow the instruction DROP for registers with no current USING.
  • Suppress string sublist function and return entire string; for example, &T SETC '(ABC)'(1) returns (ABC), not ABC.
  • Allow literal pool references across CSECT boundaries. This works on the PC, but on the mainframe the Assembler Linker may replace or reorder CSECTS, thereby rendering some literal pool references invalid. Under these circumstances specify NOALLOW.
  • Allow conditional assembly macro references to the length (L' operator) of symbols defined on EQU statements with no third operand that explicitly defines the length; during the macro pre-process stage the length defaults to one, but during the assembly phase it is set to its actual value, and the code generated is incorrect.
  • Issue no warning about the presence of blank lines.
  • Issue no warning about the presence of dead code, that is code that can never be executed.
  • Issue no warning about a POP instruction without a preceding PUSH.

When NOALLOW is specified, error or warning messages are issued for the above.