ここでは、NetCOBOL開発環境について、NetCOBOL V10.2.0以降で実施された障害修正により動作が変わるものを、以下の表で説明します。
表2.1 NetCOBOL開発環境の障害修正に関する互換情報項番 | VL(注) | P番号 | 変更内容 |
---|
1 | V10.1.0 ~ V12.0.0 | PH14815 | 以下の条件の場合、COBOLアプリケーションの実行時に、正しく動作しない問題を修正しました。 翻訳オプションINITVALUEに指定し、INITVALUEの値として00以外を指定している。かつ、 ファクトリデータおよびオブジェクトデータのうち作業場所節に初期値を持たないデータ項目を定義している。かつ、 2.のデータ項目に値を設定せずに参照した場合。
|
2 | V10.1.0 ~ V11.0.0A | PH05861 | 以下の条件の場合、COBOLアプリケーションの実行時に、部分参照した外部10進項目から数字編集項目または浮動小数点項目への転記において、送出し側を部分参照する範囲が1桁左にずれる誤りが発生する問題を修正しました。 送出し側が符号付き外部10進項目、受取り側が数字編集項目または浮動小数点項目のMOVE文を記述している(*1)。かつ、 送出し側項目のSIGN句にSEPARATE CHARACTER指定(*2)がある。かつ、 送出し側項目を部分参照している。かつ、 3.の部分参照の長さを定数で指定している場合。
*1: 暗黙のMOVE文を含む。 *2: TRAILING SEPARATE指定 |
3 | V10.0.1 ~ V11.0.0A | PH05538 | 以下の[条件1]~[条件3]のどれかを満たす場合、COBOLアプリケーションの実行時に、基底場所節に宣言したデータ項目を使用する文で、異常終了(ACCESS VIOLATION)または結果誤りが発生する場合がある問題を修正しました。 [条件1] 基底場所節に宣言したデータ項目を以下のどちらかの方法で使用している。かつ、 1-1) 変数で添字付けしている。または、 1-2) 最左端文字位置に変数を指定した部分参照をしている。 翻訳オプションOPTIMIZEが有効である。(*) *:デフォルトはNOOPTIMIZEです。
[条件2] 基底場所節に宣言したデータ項目を、以下のどれかの文に指定している。 INSPECT文 STRING文(中核) UNSTRING文(中核)
[条件3] 基底場所節にOCCURS句を指定したデータ項目を宣言している。かつ、 1.のデータ項目をINITIALIZE文に指定している。
|
4 | V11.0.0 ~ V11.0.0A | PH04570 | 以下の条件の場合、COBOLプログラムの翻訳時に、以下に示すどちらかの現象が発生する問題を修正しました。 [現象1] 誤った構文に対して、以下の翻訳エラーメッセージが出力されず、翻訳が正常終了(*1)します。 JMN2038I-S VALUE句の定数の長さは,項目の長さ以下でなければなりません.項目長に合わせ,定数の右端を切り落とします. *1:作成された目的プログラム中のデータ項目は項目長に合わせて定数の右端を切り落とした定数値が設定された状態で動作します。 [現象2] 正しい構文に対し以下の翻訳エラーメッセージが出力され、翻訳に失敗します。 JMN2106I-S 条件名のVALUE句のTHROUGHの後の値は,THROUGHの前の値より大きくなければなりません.
[条件] 以下のどれかのエンコードの日本語項目または日本語編集項目を記述している。かつ、 1.のデータ項目または1.のデータ項目を条件変数とする条件名にVALUE句を指定している。かつ、 2.のVALUE句に以下のどちらかを満たす日本語定数(*2)を指定している。かつ、 PICTURE句に指定した大きさを超えている THROUGH指定の前後に、大小順序の正しい2つの日本語定数を指定している
3.の日本語定数が41文字以上かつ80文字以下の場合。
*2: 日本語定数同士の連結式を含む。 【補足】 それぞれの現象は、以下の発生条件を満たす場合に発生します。 現象1: 発生条件3.のa. 現象2: 発生条件3.のb.
|
5 | V10.1.0 ~ V11.0.1 | PH02265 | 以下の条件の場合、翻訳エラー(*1)となるべきCOBOLプログラムが、エラーにならない問題を修正しました。(*2) *1: 以下のどれかのメッセージが出力されません。 JMN1775I-S AS句の直後には文字定数または日本語定数を指定しなければなりません.次の認識できる段落または部まで無効になります.
JMN1107I-S プログラム名として指定できない文字列が指定されました.またはプログラム名が指定されていません.プログラム名を生成し,次の段落または部まで無効になります.
JMN1292I-S プログラム名として指定できない文字列が指定されました.またはプログラム名が指定されていません.
JMN5526I-S INVOKE文のメソッド名の指定は,一意名,文字定数または日本語文字定数でなければなりません.INVOKE文を無効とします.
JMN5561I-S メソッドの行内呼出しに指定するメソッド名は文字定数または日本語文字定数でなければなりません.メソッドの行内呼出しを無効とします. *2: 翻訳エラーにならず、作成された目的プログラムは正しく動作します。 以下のどれかに連結式を記述している。かつ、 プログラム名のAS指定 クラス名のAS指定 メソッド名のAS指定 プロパティ名のAS指定 プログラム名定数 INVOKE文または行内呼出しのメソッド名の指定
1.に記述した連結式の先頭が文字定数である。かつ、 1.に記述した連結式に16進文字定数が含まれている。かつ、 COBOLソースプログラムと実行時コード系が以下の組み合わせの場合。 4-1-1) COBOLソースプログラムのコード系がSJISである。かつ、 4-1-2) 実行時コード系がSJISである。 または、 4-2-1) COBOLソースプログラムのコード系がUTF-8である。かつ、 4-2-2) 実行時コード系がUnicodeである。
または、 以下のどれかに連結式を記述している。かつ、 プログラム名のAS指定 クラス名のAS指定 メソッド名のAS指定 プロパティ名のAS指定 INVOKE文または行内呼出しのメソッド名の指定
1.に記述した連結式の先頭が日本語文字定数である。かつ、 1.に記述した連結式に日本語16進文字定数が含まれている。かつ、 COBOLソースプログラムと実行時コード系が以下の組み合わせの場合。 4-1-1) COBOLソースプログラムのコード系がSJISである。かつ、 4-1-2) 実行時コード系がSJISである。
【補足】 以下に指定できる定数は、文字定数または日本語文字定数でなければなりません。 プログラム名のAS指定 クラス名のAS指定 メソッド名のAS指定 プロパティ名のAS指定 プログラム名定数 INVOKE文または行内呼出しのメソッド名の指定
したがって、発生条件に示す記述は構文規則に違反しており、本来ならば翻訳エラーとなるべき場合です。 |
6 | V10.1.0 | PG78440 | 以下の条件の場合、COBOLアプリケーションの実行時に、正しい結果が得られないことがある問題を修正しました。 翻訳オプションBINARY(BYTE)またはBINARY(WORD,MLBOFF)が指定されている。かつ、 以下の組み込み関数が存在する。かつ、 [A] FUNCTION MAX FUNCTION MIN FUNCTION MEAN FUNCTION MEDIAN FUNCTION RANGE
[B] FUNCTION ANNUITY FUNCTION NUMVAL FUNCTION NUMVAL-C FUNCTION RANDOM
2.の関数の引数が、すべて9桁以下の固定小数点数字である。かつ、 2.の関数が[A]の場合、引数が4つ以上指定されている。
|
7 | V10.1.0 | PG77383 | 以下の条件の場合、COBOLアプリケーションの実行時に、正しい結果が得られないことがある問題を修正しました。 翻訳オプションOPTIMIZEが有効である。(*1)かつ、 内部10進項目を数字編集項目へ設定している文を記述している。かつ、 内部10進項目と数字編集項目のけた数は、「整数部のけた数が同じ、かつ、小数部がない」である。かつ、 数字編集項目は、編集方法にゼロ抑制のみを指定している(PICTUREの文字列には'9','Z','*'のみを使用している)。かつ、 2.の文の前に、データ項目(または中間結果)を2.の内部10進項目へ設定する文(*2)を記述している。かつ、 5.のデータ項目(または中間結果)のけた数と2.の内部10進項目のけた数 の関係が次のようになっている。かつ、 ------------------------------------------------------
データ項目(または中間結果) 内部10進項目
------------------------------------------------------
2 3
4 5
6 7
8 9
10 11
12 13
14 15
16 17
------------------------------------------------------ 5.のデータ項目(または中間結果)と2.の内部10進項目の両方に小数部がない。
*1:デフォルトの翻訳オプションはNOOPTIMIZEです。 *2:数字転記はMOVE文だけでなく、COMPUTE文などの暗黙に転記が発生する場合も該当します。 |
8 | V10.1.0 ~ V10.5.0 | PG76651 | 以下の条件の場合、COBOLアプリケーションの実行時に、長さの異なる日本語項目(日本語編集項目、組込み関数を含む)同士の大小比較の結果が正しくない問題を修正しました。 翻訳オプションRSC(UCS2,LE)またはRSC(UTF16,LE)を指定している。かつ、 日本語項目と、日本語項目または日本語文字定数の大小比較である。かつ、 少なくとも一方が部分参照された項目またはANY LENGTH句の指定がある項目である。かつ、 比較対象の長さが異なる場合。
|
注: VLは、障害が存在する範囲を示します。