表2.1 NetCOBOL開発環境の障害修正に関する互換情報項番 | VL(注) | P番号 | 変更内容 |
---|
1 | V10.0.0 ~ V12.0.0 | PH14298 | 以下の条件の場合、COBOLプログラムの実行時に、正しい転記結果にならない問題を修正しました(*1)。 *1:送出しの値の下位1バイトが転記されません。 翻訳オプションBINARY(BYTE)が有効である。かつ、 以下の転記文がある場合 送出し側データ項目 USAGE句:BINARYまたはCOMP 符号:符号なし 桁数:3桁または、4桁
受取り側データ項目 USAGE句:BINARYまたはCOMP 符号:符号なしまたは符号つき 桁数:15桁または16桁
|
2 | V12L50 ~ V11.0.0 | PH05861 | 以下の条件の場合、COBOLプログラムの実行時、部分参照した外部10進項目から数字編集項目または浮動小数点項目への転記において、送出し側を部分参照する範囲が1桁左にずれる誤りが発生する問題を修正しました。 送出し側が符号付き外部10進項目、受取り側が数字編集項目または浮動小数点項目のMOVE文を記述している(*1)。かつ、 送出し側項目のSIGN句にSEPARATE CHARACTER指定(*2)がある。かつ、 送出し側項目を部分参照している。かつ、 3.の部分参照の長さを定数で指定している場合。
*1: 暗黙のMOVE文を含む。 *2: TRAILING SEPARATE指定 |
3 | V12L50 ~ V10.5.0 | PH02265 | 以下の[条件1]または[条件2]の場合、翻訳エラー(*1)となるべきCOBOLプログラムが、エラーにならない(*2)問題を修正しました。 (*1)以下のいずれかのメッセージが出力されません。 JMN1775I-S AS句の直後には文字定数または日本語定数を指定しなければなりません.次の認識できる段落または部まで無効になります.
JMN1107I-S プログラム名として指定できない文字列が指定されました.またはプログラム名が指定されていません.プログラム名を生成し,次の段落または部まで無効になります.
JMN1292I-S プログラム名として指定できない文字列が指定されました.またはプログラム名が指定されていません.
JMN5526I-S INVOKE文のメソッド名の指定は,一意名,文字定数または日本語文字定数でなければなりません.INVOKE文を無効とします.
JMN5561I-S メソッドの行内呼出しに指定するメソッド名は文字定数または日本語文字定数でなければなりません.メソッドの行内呼出しを無効とします. (*2)翻訳エラーにならず、作成された目的プログラムは正しく動作します。 [条件1] 以下のいずれかに連結式を記述している。かつ、 1.に記述した連結式の先頭が文字定数である。かつ、 1.に記述した連結式に16進文字定数が含まれている。かつ、 COBOLソースプログラムと実行時コード系が以下の組み合わせの場合。 4-1-1) COBOLソースプログラムのコード系がSJISである。かつ、 4-1-2) 実行時コード系がSJISである。 または、 4-2-1) COBOLソースプログラムのコード系がUTF-8である。かつ、 4-2-2) 実行時コード系がUnicodeである。
[条件2] 以下のいずれかに連結式を記述している。かつ、 1.に記述した連結式の先頭が日本語文字定数である。かつ、 1.に記述した連結式に日本語16進文字定数が含まれている。かつ、 COBOLソースプログラムと実行時コード系が以下の組み合わせの場合。 4-1-1) COBOLソースプログラムのコード系がSJISである。かつ、 4-1-2) 実行時コード系がSJISである。
【補足】 以下に指定できる定数は、文字定数または日本語文字定数でなければなりません。 したがって、発生条件に示す記述は構文規則に違反しており、本来ならば翻訳エラーとなるべき場合です。 |
4 | V12L50 ~ V10.5.0 | PG76651 | 以下のいずれかの条件の場合、COBOLプログラム実行時に、長さの異なる日本語項目(日本語編集項目、組込み関数を含む)同士の大小比較の結果が正しくない問題を修正しました。 [条件1] 翻訳オプションRCS(UCS2,LE)またはRCS(UTF16,LE)を指定している。かつ、 日本語項目と、日本語項目または日本語文字定数の大小比較を行っている。かつ、 比較対象の一方の長さが4文字(8バイト)である。かつ、 比較対象のもう一方の長さが5文字(10バイト)以上である場合。
[条件2] 翻訳オプションRCS(UCS2,LE)またはRCS(UTF16,LE)を指定している。かつ、 日本語項目と、日本語項目または日本語文字定数の大小比較を行っている。かつ、 比較対象の長さの差が以下の場合。 6文字(12バイト)以上。かつ、 文字数が2の倍数(バイト数が4の倍数)
[条件3] 以下のいずれかの翻訳オプションが有効である。かつ、 RCS(SJIS) RCS(UCS2,BE) RCS(UTF16,BE)
日本語項目と、日本語項目または日本語文字定数の大小比較である。かつ、 比較対象の長さの差が5文字(10バイト)以上の場合。
[条件4] 翻訳オプションRCS(UCS2,LE)またはRCS(UTF16,LE)を指定している。かつ、 4文字(8バイト)以上の日本語項目と、以下の表意定数の大小比較である場合。
[条件5] 翻訳オプションRCS(UCS2,LE)またはRCS(UTF16,LE)を指定している。かつ、 日本語項目と、以下の表意定数の大小比較である場合。
[条件6] 翻訳オプションRCS(UCS2,LE)またはRCS(UTF16,LE)を指定している。かつ、 日本語項目と、日本語項目または日本語文字定数の大小比較である。かつ、 少なくとも一方が部分参照された項目またはANY LENGTH句が指定された項目である。かつ、 比較対象の長さが異なる場合。
【注意事項】 |
5 | V12L50 ~ V10.1.0 | PG63990 | 以下の条件の場合、正しい実行結果が得られないことがある問題を修正しました。 SEARCH文(SEARCH ALL)が存在する。かつ、 SEARCH文のWHEN指定に複数の条件を記述している、または、WHEN指定のキー項目に指定されている添字が多次元である。かつ、 条件の左辺(キー項目)に次のいずれかのUSAGEの項目を記述している。かつ、 条件の右辺(比較対象項目)に浮動小数点項目または浮動小数点定数を記述している。
|
6 | V20L10 ~ V10.1.0 | PG72507 | 以下の条件の場合、実行時に異常終了する、または正しい実行結果が得られないことがある問題を修正しました。 固定小数点属性の中間結果の桁数(注)が28桁になる四則演算が存在する。
[中間結果が28桁になる演算の例] 18桁の整数と小数点以下に9桁を持つ小数の加算 01 DATA11 PIC S9(18).
01 DATA12 PIC S9(18).
01 DATA13 PIC S9(10)V9(9).
:
COMPUTE DATA11 = DATA12 + DATA13 *> 整数18桁と小数点以下9桁の加算 10桁の整数と18桁の整数の乗算 01 DATA21 PIC S9(18).
01 DATA22 PIC S9(10).
01 DATA23 PIC S9(18).
:
COMPUTE DATA21 = DATA22 * DATA23 *> 整数18桁と10桁の乗算
注:中間結果の詳細については、“COBOL文法書”の“付録D 中間結果”を参照してください。 |
7 | V20L10 ~ V10.1.0 | PG78440 | 以下の条件の場合、正しい実行結果が得られないことがある問題を修正しました。 翻訳オプション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つ以上指定されている。
|
8 | V40L20 ~ V10.1.0 | PG77383 | 以下の条件の場合、実行時に正しい実行結果が得られないことがある問題を修正しました。 翻訳オプション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文などの暗黙に転記が発生する場合も該当します。 |
9 | V20L10 ~ V10.0.0 | PG64711 | 以下の条件の場合、正しい実行結果が得られないことがある問題を修正しました。 翻訳オプションBINARY(BYTE)またはBINARY(WORD,MLBOFF)が指定されている。かつ 翻訳オプションOPTIMIZEが指定されている。かつ、 以下のaまたはbのどちらかに該当するソース記述が存在する。 以下の条件を全て満足する算術文 受取り側要素(*)に符号無し2進項目が指定されている。 受取り側要素(*)の符号無し2進項目の領域長が、2バイトである。 受取り側要素(*)が、その算術文の算術式中で使用されている。 受取り側要素(*)の小数部桁数が、その算術文の中間結果精度の小数部桁数より小さい。 算術文がCOMPUTE文の場合、[NOT] ON SIZE ERROR句の指定が無い。
以下の条件を全て満足するMOVE文(暗に発生するMOVE文も含む)。 受取り側要素に符号無しの2進項目が指定されている。 受取り側要素の2進領域長が、2バイトである。 受取り側要素が、送り側要素の添字中に使用されている。 受取り側要素の小数部桁数が、送り側要素の小数部桁数より小さい。 翻訳オプションCHECK(BOUND)が指定されていない。
*:DIVIDE文のREMAINDER指定も含みます。 |
10 | V20L10 ~ V10.0.0 | PG64787 | 以下の条件の場合、正しい実行結果が得られないことがある問題を修正しました。 翻訳オプションBINARY(BYTE)またはBINARY(WORD,MLBOFF)が指定されている。かつ、 翻訳オプションTRUNCが指定されている。かつ、 送り側要素が符号無しの2進項目、受取り側要素が符号の有無に関わらず、2進項目または内部10進のいずれかであるMOVE文(暗に発生するMOVE文も含む)が存在する。かつ、 3. のMOVE文において、送り側要素と受取り側要素の整数部桁数の大小関係が、送り側整数部桁数 > 受取り側整数部桁数、である。かつ、 送り側要素の符号無し2進項目の領域長が、2または4バイトである。かつ、 送り側要素の符号無し2進項目が、最左端ビットがONの値を保持している。
|
11 | V20L10 ~ V10.0.0 | PG64876 | 以下の条件の場合、正しい実行結果が得られないことがある問題を修正しました。 翻訳オプションBINARY(BYTE)またはBINARY(WORD,MLBOFF)が指定されている。かつ、 以下の組み込み関数が存在する。かつ、 FUNCTION MAX FUNCTION MIN FUNCTION MEAN FUNCTION MEDIAN FUNCTION MIDRANGE FUNCTION VARIANCE FUNCTION RANGE FUNCTION SUM
2.の関数に指定されている引数の並びの中に、2バイトまたは4バイトの符号無しの2進項目が存在する。かつ、 2.の関数に指定されている引数の並びの中に、10桁以上の固定小数点数字項目が存在しない。
|
12 | V20L10 ~ V10.0.0 | PG64890 | 以下の条件の場合、数字定数から2進項目への転記に対して、翻訳時に不当にエラーメッセージが出力されることがある、または、正しい実行結果が得られないことがある問題を修正しました。 翻訳オプションBINARY(BYTE)またはBINARY(WORD,MLBOFF)が指定されている。かつ、 数字定数を2進項目に転記するMOVE文(暗に発生するMOVE文も含む)が存在する。かつ、 2.の数字定数の数値が5桁である。かつ、 2.の転記において「数字定数の小数部桁数 < 受取り側の2進項目の小数部桁数」である。
|
13 | V8.0L10 ~ V9.0L20 | PG61645 | 以下の条件の場合、COBOLプログラムの翻訳時に、詳細コード=5481のUエラーが発生する問題を修正しました。 翻訳オプションNOOPTIMIZE及びNOTESTが有効になっている(*)。かつ、 LENGTH関数を記述している。 かつ、 LENGTH関数の作用対象が以下の関数である。 UTF8-OF関数 UCS2-OF関数 DISPLAY-OF関数 NATIONAL-OF関数
*:デフォルトは翻訳オプションNOOPTIMIZE,NOTESTです。 |
14 | V5.0L10 ~ V9.0L20 | PG61647 | 以下の条件の場合、COBOLコンパイラが出力する目的プログラムリストの一部で文字化けが発生する問題を修正しました。 翻訳オプションLISTを指定して目的プログラムリストを出力している。かつ、 字類が日本語の項目を記述している。 かつ、 2.の項目に表意定数LOW-VALUEまたはHIGH-VALUEを転記及び比較している文を記述している。
|
15 | V4.0L10 ~ V9.0L20 | PG61648 | 以下の条件の場合、COBOLプログラムの翻訳時に、詳細コード=6410のUエラーが発生する問題を修正しました。 翻訳オプションLISTを指定して目的プログラムリストを出力している。かつ、 手続き部に以下の文を記述している。かつ、 2.の文の定数が95文字より長い。
|
16 | V12L30 ~ V9.0L20 | PG61649 | 以下の条件の場合、COBOLプログラムの翻訳時に、詳細コード=5480のUエラーが発生する問題を修正しました。 翻訳オプションOPTIMIZEを指定している。かつ、 送出し側が2進項目以外の数字定数で、受取り側が2進項目の転記または2進項目の組込み関数がある。かつ、 受取り側の2進項目の領域長が2バイトである。
|
17 | V12L50 ~ V9.0L10 | PG49000 | 以下の条件の場合、実行時にSQL文の処理結果が意図しないものとなる問題を修正しました。 COBOLのデータベース機能(ODBC接続)を使用している。かつ、 1つの埋込みSQL文を複数行に渡って記述している。かつ、 2.の埋込みSQL文中に文字列定数を記述している。かつ、 文字列定数の終端を表すシングルクォーテーションがB領域の右端(直後に改行)に位置している。かつ、 次行に以下のいずれかの条件に当てはまるSQL文を記述している。 最終トークンが4.と同条件の文字列定数ではない場合、有効バイト数37バイトのSQL文。(JEFオプションの場合は有効バイト数123バイトのSQL文) 
最終トークンが4.と同条件の文字列定数である場合、有効バイト数38バイトのSQL文。(JEFオプションの場合は有効バイト数124バイトのSQL文) 
注1:▽は改行を表す。 注2:連続した空白は1バイトとみなす。 
条件に当てはまる文例を以下に示します。 
|
18 | V8.0L10 ~ V8.0L10A | PG50529 | 以下の条件の場合、翻訳時にコンパイラの診断メッセージJMN2224I-W(「CHARACTER TYPE 句またはPRINTING POSITION 句が有効なデータ項目が再定義されています.印刷結果は保証されません.」)が出力されない問題を修正しました。 REDEFINES 句を指定した項目が、CHARACTER TYPE 句を指定した項目に従属している。かつ、 1.のREDEFINES 句を指定した項目、あるいはこれに従属している項目が、日本語項目または日本語編集項目。かつ、 1.のREDEFINES 句指定項目によって再定義される項目は、次のいずれにも該当しない。かつ、 2.の日本語項目または日本語編集項目自身には、CHARACTER TYPE 句を指定していない。
補足:CHARACTER TYPE 句指定項目に従属する項目にREDEFINES 句を指定した場合は、レコードの印字は正しく行われないため、通常はJMN2224I-W が出力されます。 詳細については、「NetCOBOL メッセージ集」のJMN2224I-Wの説明を参照してください。 |
19 | V8.0L10 | PG44499 | 以下の条件の場合、COBOL プログラムの実行時、内部ブール項目の比較処理の結果が正しくないことがある問題を修正しました。 OPTIMIZE翻訳オプションを指定されている。かつ、 内部ブール項目の比較が3つ以上連続している(*1)。かつ、 比較対象の内部ブール項目が集団項目に従属する基本項目である。かつ、 3.の基本項目が集団項目の先頭から1バイト以上離れた文字位置に存在している。かつ、 3.の基本項目が同一バイト内にある(*2)。
*1:プログラムの論理で3つ以上の連続した比較である。例えば、3つ以上の連続したIF文や、EVALUATE文のWHENが3つ以上連続した場合、条件文中にANDやORで条件式を3つ以上記述した場合などが該当します。 *2:内部ブール項目が連続していなくても、同一バイト内にあれば該当します。 |
20 | V5.0L10 ~ V7.2L10 | PG58113 | 以下の条件の場合、データ項目の初期値が正しく設定されない問題を修正しました。 TYPEDEF 句およびVALUE 句を使用して、初期値をもつ型を宣言。かつ、 OCCURS 句を持つデータ記述項において、1.の型をTYPE 句で指定する場合。
|
21 | V12L50 ~ V7.2L10 | PG24836 | 以下の条件の場合、受け側項目が符号なし定義であるにも関わらず、符号付きのデータが格納される問題を修正しました。 以下のいずれかの形式のCOMPUTE 文またはADD 文が存在する。かつ、 ADD ITEM-1 TO ITEM-2. ADD ITEM-1 TO ITEM-2 GIVING ITEM-2. ADD ITEM-2 TO ITEM-1 GIVING ITEM-2. COMPUTE ITEM-2 = ITEM-2 + ITEM-1.
上記において、ITEM-1 とITEM-2 の属性が次のように定義されている。かつ、 ITEM-1:2 進、7 桁以下 ITEM-2:内部10 進、7 桁以下、符号なし 以下の条件が成立する。 ITEM-1 の小数部= ITEM-2 の小数部。かつ、 ITEM-2 の全桁数≧ITEM-1 の全桁数。かつ、 TRUNC 翻訳オプションを指定していない。かつ、 ROUNDED 句の指定がない。かつ、 [NOT] ON SIZE ERROR の指定がない。
参考:報告書作成機能の実行において、上記の条件により、特殊レジスタLINE-COUNTERあるいはPAGECOUNTER に、符号付の値が格納される事があります。 |
22 | V12L50 ~ V7.2L10 | PG24874 | 以下の条件の場合、指定されているWITH LOCK 指定またはWITH NO LOCK 指定が有効にならない問題を修正しました。 READ 文が存在。かつ、 1.のREAD文にINTO 指定が存在。かつ、 1.のREAD文にWITH LOCK またはWITH NO LOCK 指定が存在する。
|
23 | V7.2L10 | PG34053 | 以下の条件の場合、実行時に、正しいレコード長でレコードが書き出されないことがある問題を修正しました。 FORMAT 句無し印刷ファイルまたはFORMAT 句付き印刷ファイルに対するWRITE 文が記述されている。かつ、 WRITE 文の対象となるファイルの形式が、FD 記述項にDEPENDING ON 指定有りのRECORD 句が記述された可変長レコードファイル。または、FD 記述項に「CONTAINS 整数-1 CHARACTERS」指定のRECORD 句が記述された固定長レコードファイル。かつ、 WRITE 文にFROM 指定が無い場合は、指定されたレコード名のレコードデータ項目、FROM 指定が有る場合は、そのFROM に指定されたデータ項目について、それ自身、または、それに従属する項目中に、CHARACTER TYPE 句およびPRINTING POSITION 句が存在しない。かつ、 WRITE 文に指定されたレコード名のデータ項目の項目長(*1)が、RECORD 句の指定長(*2)と異なる。
*1:OCCURS DEPENDING ON 指定項目を従属する場合は実行時に決まる長さ *2:DEPENDING ON 指定があるならば実行時にそのデータ項目が保持している値 |
24 | V6.0L10 ~ V7.2L10 | P806637 | 以下の条件の場合、COBOLプログラムの実行時、領域破壊を起こすことがある問題を修正しました。 内部ブール転記において、受取り側と送出し側のビット列長が4ビットである。かつ、 受取り側と送出し側のバイト内相対ビット位置が次のような場合。
|
25 | V6.0L10 ~ V7.2L10 | PG29813 | 以下の条件の場合、COBOL プログラムの実行時、内部ブール項目の比較処理の結果が正しくないことがある問題を修正しました。 OPTIMIZE翻訳オプションを指定されている。かつ、 IF文やEVALUATE文などが連続して記述されている。または、条件が論理演算子ANDまたはORで連結されている。かつ、 2.の条件が以下であり、条件が連続して記述されている。かつ、 内部ブール項目と定数の比較 内部ブール項目の条件名による比較
3.のそれぞれの条件で使用されている内部ブール項目が同一バイト内に存在する。
|
26 | V6.0L10 ~ V7.0L10 | P805391 | 以下の条件の場合、COBOL プログラムの実行時、異常終了することがある問題を修正しました。 転記の文が複数個連続して記述されている。かつ、 2つ目以降の転記文の作用対象(受取り側または送出し側)の一方が以下のデータ項目である。かつ、 2.の項目は集団項目に含まれる基本項目、またはレベル番号02以上の集団項目である。かつ、 2.のデータ項目でない転記の文のもう一方の作用対象が、添字付けされたデータ項目または部分参照されたデータ項目である。かつ、 4.の作用対象の添字、部分参照の最左端文字位置、または部分参照の長さが、2進項目または3桁以下の内部10進項目である。
|
27 | V6.0L10 ~ V7.0L10 | PG28063 | 以下の条件の場合、COBOL プログラムの実行時、数字編集項目への転記処理の結果が正しくないことがある問題を修正しました。 OPTIMIZE翻訳オプションを指定している。かつ、 内部10進項目から数字編集項目への転記である。かつ、 内部10進項目の桁数が偶数である。かつ、 数字編集項目に符号編集用文字 +,-,CR,DB が指定されている。かつ、 数字編集項目の数字の桁数が内部10進項目の数値の桁数よりも1桁多い。
|
28 | V6.0L10 ~ V6.1L21 | PG13846 | 以下の条件の場合、COBOL プログラムの実行時、実行結果誤りまたは異常終了することがある問題を修正しました。 COMPUTE 文、ADD 文、またはSUBTRACT文を使った回帰演算式(A=A+BまたはA=A-B)が連続して複数個記述されている。かつ、 1.の算術式の作用対象の一方が連絡節に記述されたデータ項目、EXTERNAL句を使用したデータ項目のいずれかである。かつ、 2.の項目は集団項目に含まれる項目(レベル02)以上である。かつ、 2.の項目でない算術式のもう一方の作用対象が添字付きである。かつ、 4.に示す作用対象の添字の属性が小数部桁を含めた全桁数が 3桁以下である内部10進または 2進である。かつ、 1.の回帰演算式は外部10進属性同士の加算である。
|
29 | V5.0L10 ~ V6.1L10 | PG04322 | 以下の条件の場合、呼出し先メソッドのANY LENGTH項目の項目長が正しくなく、文字列が切れていたり、末尾にゴミが入ったりする問題を修正しました。 INVOKE文のUSINGパラメタまたはメソッド行内呼出しのパラメタに、ANY LENGTH項目が指定されている。かつ、 翻訳オプションTHREAD(MULTI)が指定されている。かつ、 同一プロセス内で1.のメソッド呼出しが複数スレッドで同時に実行される。
|
30 | V12L50 ~ V6.0L10 | PG61322 | 以下の条件の場合、COBOLプログラム実行時に、字類が日本語の条件変数のパディング文字が誤って半角空白になり、実行結果誤りとなる問題を修正しました。 条件変数が8文字以下の日本語項目または日本語編集項目である。かつ、 1.の条件名のVALUE値が項目長より短い。かつ、 2.の条件名により条件変数に値を設定した。
[例] 01 N04 PIC N(4).
88 AA VALUE NC"AA".
:
SET AA TO TRUE *> N04のパディング文字が半角空白になる。
IF AA THEN *> 判定が誤って偽となる。 |