CMPAT オプションは、ストリング、AREA、配列、および構造体 (あるいは、これらのいずれか) を共用するプログラムの ために、OS PL/I バージョン 1、OS PL/I バージョン 2、PL/I for MVS and VM、VisualAge PL/I for OS/390 または Enterprise PL/I for z/OS とのオブジェクト互換性を維持するかどうかを指定します。
.-V2-. >>-CMPAT--(--+-LE-+--)----------------------------------------->< '-V1-'
DB2 ストアード・プロシージャーは、CMPAT(LE) を指定してコンパイルしてはいけません。
1 つのアプリケーション内のモジュールはすべて、 同じ CMPAT オプションを指定してコンパイルする必要があります。
新旧のコードを混合する場合は、次の制限があります。 これらの制限に関する情報については、「Enterprise PL/I for z/OS コンパイラーおよびランタイム 移行ガイド」を参照してください。
DFT(DESCLIST) オプションは、CMPAT(V*) オプションと競合するため、 そのいずれかのオプションとともに指定された場合、メッセージが出されて、DFT(DESCLOCATOR) オプションとしてとられます。
CMPAT(V3) では、配列は、8 バイトの整数としてとれるすべての値で宣言できます。 ただし、配列の合計サイズには今のところまだ、CMPAT(V2) で宣言された配列と同じ制限があります。
CMPAT(V3) では、以下の組み込み関数で、FIXED BIN(63) の結果が常に返されます。
これらの関数は 8 バイトの整数値を返すため、CMPAT(V3) では、LIMITS オプションの FIXEDBIN サブオプションにおける 2 番目のオプションは、63 にする必要があります。
ただし、CMPAT(V3) でも、ステートメントおよびフォーマット・ラベル定数は、4 バイト整数を使用して指定する必要があります。