CHECK オプションは、コンパイラーが、さまざまな プログラミング・エラーを検出するための特殊なコードを生成するかどうかを指定します。
.-+---+-----------------. | '-,-' | V .-NOCONFORMANCE-. | >>-CHECK--(----+-+-CONFORMANCE---+-+-+--)---------------------->< | .-NOSTORAGE-. | '-+-STORAGE---+-----'
省略形: STG、NSTG
CHECK(CONFORMANCE) を指定すると、プロシージャーに渡された 引数の属性が、宣言されたパラメーターの属性と一致する場合に、 以下の状況で、実行時に検査するコードをコンパイラーが生成します。
プロシージャーに NODESCRIPTOR オプションが適用される場合、またはブロックに ENTRY ステートメント が含まれている場合、あるいは CMPAT(LE) オプションが有効な場合には、 この追加のコードは生成されません。
CHECK(STORAGE) を指定すると、コンパイラーは ALLOCATE ステートメント と FREE ステートメントについて多少異なるライブラリー・ルーチンを 呼び出します (これらのステートメントが AREA 内に出現する場合を除く)。 「PL/I 言語解説書」で説明されている次の組み込み関数は、CHECK(STORAGE) を 指定した場合だけ使用できます。
Enterprise PL/I アプリケーションでは、AMODE(24) は非推奨です。 CHECK(STORAGE) オプションを指定してコンパイルされたコードで、AMODE(24) を使用する必要がある場合は、HEAP(,,BELOW) ランタイム・オプションも指定する必要があります。