「言語解説書」マニュアルに記述されているように、引数の配置がパラメーター記述と 異なる場合は、仮引数が作成されます。 しかし、従来のコンパイラーは、CHARACTER NONVARYING に関してはこのルールに従いました が、CHARACTER VARYING に関しては従いませんでした。 新しいコンパイラーでは、このルールを一貫して適用します。
そのため、例えば次のようなコードになります。
dcl x entry( unaligned char(8) ); dcl y entry( unaligned char(8) varying ); dcl a aligned char(8); dcl b aligned char(8) varying; call x( a ); call y( b );
この例では、両方の CALL ステートメントに対して仮引数が作成されるべき ですが、2 番目の CALL に対しては Enterprise コンパイラーのみが仮引数を作成します。
なお、DEFAULT(DUMMY(UNALIGNED)) コンパイラー・オプションを使用することで、 コンパイラーが仮引数を作成するかどうか判断するときに、配置の不一致を無視させることができることに注意してください。 このオプションが有効である場合は、 コンパイラーは上記の例のどちらの CALL に対しても仮引数を作成しません。