3211 ~ 3214 までのメッセージでフラグが立てられた UNSTRING ステートメントのほとんどは、同じ結果を生成します。UNSTRING ステートメントのオペランド間に特定の依存関係がある場合にのみ、異なる結果を生成します。
たとえば、以下のような場合には、UNSTRING ステートメントの 2 つの
オペランド (op-1 と op-2) の間に依存関係が存在する可能性があります。
- op-1 が添え字付けされており、その添え字値は op-2 によって変更される。
- 添え字 ID が、INTO、DELIMITER IN、または COUNT IN オペランド内の受信側とし
て使用されている。
- 添え字 ID は位置可変の項目であり、この項目の位置に影響を与える ODO オブジェクト が INTO、DELIMITER IN、または COUNT IN オペランドの受信側として使用されている。
- op-1 が可変長のグループ項目であり、このグループの長さを左右する ODO オブジェクト
は op-2 によって変更される。
- ODO オブジェクトが、INTO、DELIMITER IN、または COUNT IN オペランド内の
受信側として使用されている。
- op-1 は位置可変の項目であり、この項目の位置に影響を与える ODO オブジェクトが op-2 によって変更されている。
- ODO オブジェクトが、INTO、DELIMITER IN、または COUNT IN オペランド内の
受信側として使用されている。
注: オペランドをオーバーラップすることによって、あるいは DELIMITED BY オペランドと同じ ID および送信側、INTO、また
は DELIMITER IN オペランドのいずれかと同じ ID を指定することによって生成された
依存関係は、COBOL 74 標準と COBOL 85 標準のいずれでも正しくないため、ここでは説明
しません。一般に、結果は予測できません。
CMPR2 および FLAGMIG オプションを指定してプログラムをコンパイルすると、すべての UNSTRING ステートメントに同様の依存性が存在する可能性があるため、コンパイラーがメッセージを出します。
これらのメッセージでフラグが立てられなかった UNSTRING ステートメントは、CMPR2 と NOCMPR2 のもとで同一の結果を生成します。
メッセージ 2222 でフラグが立てられた UNSTRING ステートメントは、変更して、同じ結果を生成する
ようにする必要があります。