ALLOW

次の拡張を許可します。

  • マクロ内の変数定義の重複を許可し、最初の定義以外はすべて無視します (前の定義と重複するマクロ内の定義を許可します。前の定義が同じマクロ内にある場合やパラメーターになる場合にかかわらず、前の定義が後の定義をオーバーライドします)。
  • AIF 命令の不定長のラベルに対するブランチを許可します (このようなブランチが原因で実行時にエラーが発生します)。全語および半語の定義で、括弧や一重引用符で囲まれた値の使用が許可されます (F(D0) や F'D0' などのコード化が可能)。
  • 現在の USING を使用しない登録に命令 DROP を許可します。
  • 文字列サブリスト関数を抑制し、文字列全体を戻します。例えば、&T SETC '(ABC)'(1) は ABC ではなく (ABC) を戻します。
  • CSECT 境界間のリテラル プール参照を許可します。これは PC 上で行われますが、メインフレームでは、アセンブラー リンカーによって CSECTS の置き換えや並べ替えが行われるため、一部のリテラル プール参照の表示は無効になります。このような状況では、NOALLOW を指定してください。
  • 長さを明示的に定義する EQU 文で 3 番目のオペランドを指定せずに定義されるシンボルの長さ (L' 演算子) に対して条件付きアセンブリ マクロ参照を許可します。マクロの前処理段階では長さはデフォルトで 1 になりますが、アセンブリ段階では実際の値に設定され、生成されたコードは正しくありません。
  • 空白行がある場合の警告は発行されません。
  • 不要コード (実行できないコード) がある場合の警告は発行されません。
  • PUSH が前に付いていない POP 命令に関する警告は発行されません。

NOALLOW を指定した場合、上記のエラーに関するエラー メッセージが発行されます。

ALLOW オプションの目的は、メインフレームとの互換性を確保し、このような場合にエラーまたは警告メッセージが生成されないようにすることです。NOALLOW を使用して、コードの質を高めることができます。特に、ブランチ対ラベルが実行時に試される場合だけでなく、マクロのコンパイル時に不定長のすべてのマクロ ラベルを識別できる点がメリットの 1 つとして挙げられます。

プロパティ

デフォルト:
ALLOW
ビルド設定:
[Additional Directives] で指定します。