オプション RULES(LAXLINK) を指定すると、代入または比較の際の 2 つの ENTRY 変数または定数の宣言で指定した LINKAGE およびその他のオプションを、コンパイラーは無視します。
例えば、RULES(LAXLINK) オプションを使用すると、次の間違ったプログラムにフラグは立てられません。このプログラムを実行すると、ほぼ確実に異常終了が生じることになります。
dcl funtion ext entry returns( char(20) ); dcl subrtn entry variable; subrtn = function; call subrtn;
これらのエラーをキャッチし、基本的なコーディング規格を実践するには、RULES(NOLAXLINK) オプション を指定する必要があります。
しかし、CICS プリプロセッサーによって以下の宣言が生成されるので、EXEC CICS ステートメントが含まれるプログラムで RULES(NOLAXLINK) オプションを使用するのはたいていの場合良い考えとは言えません。
DCL DFHEI0 ENTRY VARIABLE INIT(DFHEI01) AUTO; DCL DFHEI01 ENTRY OPTIONS(INTER ASSEMBLER);
その結果、変数 DFHEI0 は EXEC CICS ステートメントに対して CICS プリプロセッサーが生成するコード内で使用されるので、コンパイラーは RULES(NOLAXLINK) に基づいて、OPTIONS(INTER ASSEMBLER) を使用して宣言されたエントリー DFHEI01 にフラグを立てますが、そのエントリーは OPTIONS 属性を指定せずに宣言された DFHEI0 に代入されます。