ページの先頭行へ戻る
NetCOBOL for .NET V8.0.0 リリース情報
FUJITSU Software

2.1.33 障害修正に関する互換情報について

表2.1 NetCOBOL開発環境の障害修正に関する互換情報

項番

V/L(注)

P番号

変更内容

1

V3.0L10

V7.0.0

PH10339

以下の条件の場合、以下のいずれかの現象が発生する問題を修正しました。

  • COBOLプログラムの実行時、2進項目のフィールドへ誤った値が転記される。または、

  • 編集項目のフィールドに転記を行うプログラムの翻訳時、コンパイラが以下のメッセージを出力して異常終了する。

      An internal error occurred. (Code: 1005, Parameter: -1073741819)
      STATISTICS: HIGHEST SEVERITY CODE=U
      The compilation process was stopped.
  1. MOVE文の受取り側に複数のデータ項目を記述している。かつ、

  2. 1の文の2番目以降の受取り側にフィールド参照を記述している。かつ、

  3. 2の参照するフィールドが以下のいずれかの項目である。

    • USAGE IS COMPUTATIONAL句を指定した数字項目(*1)

    • USAGE IS BINARY句を指定した数字項目(*2)

    • 数字編集項目

    • 英数字編集項目

    • 日本語編集項目

*1: 翻訳オプションASCOMP5(ALL)または、ASCOMP5(COMP)指定時は除く。

*2: 翻訳オプションASCOMP5(ALL)または、ASCOMP5(BINARY)指定時は除く。

2

V1.1L10

V5.0.0

PH06474

以下の条件の場合、COBOLプログラムの翻訳時に、構文誤りがあるにもかかわらず、コンパイラが以下のメッセージを出力せずに、翻訳が正常終了する問題を修正しました。(*)

JMN2851I-S ポインタデータ項目は,基底場所節,作業場所節,定数節または連絡節にのみ定義できます.

(*)翻訳エラーにならず、作成された目的プログラム中のポインタデータ項目は、他の節に宣言した場合と同じように動作します。

  1. ファイル節にファイル記述項または整列併合ファイル記述項を宣言している。かつ、

  2. 1.のデータ記述項にポインタデータ項目を宣言している場合。

3

V1.0L10

V5.0.0

PH05861

以下の条件の場合、COBOLプログラムの実行時に、部分参照した外部10進項目から数字編集項目または浮動小数点項目への転記結果に、以下の誤りが発生する問題を修正しました。

  • 送出し側を部分参照する範囲が1桁左にずれる。


  1. 送出し側が符号付き外部10進項目、受取り側が数字編集項目または浮動小数点項目のMOVE文を記述している(*1)。かつ、

  2. 送出し側項目のSIGN句にTRAILING SEPARATE CHARACTER指定がある。かつ、

  3. 送出し側項目を部分参照している。かつ、

  4. 3.の部分参照の長さを定数で指定している場合。


*1: 暗黙のMOVE文を含む。

4

V1.0L10

V5.0.0

PH02265

以下の[条件1]または[条件2]の場合、翻訳エラー(*1)となるべきCOBOLプログラムが、エラーにならない(*2)問題を修正しました。

(*1)以下のいずれかのメッセージが出力されません。

JMN1775I-S  AS句の直後には文字定数または日本語定数を指定しなければなりません.次の認識できる段落または部まで無効になります.
JMN1107I-S  プログラム名として指定できない文字列が指定されました.またはプログラム名が指定されていません.プログラム名を生成し,次の段落または部まで無効になります.
JMN1292I-S  プログラム名として指定できない文字列が指定されました.またはプログラム名が指定されていません.
JMN5526I-S  INVOKE文のメソッド名の指定は,一意名,文字定数または日本語文字定数でなければなりません.INVOKE文を無効とします.
JMN5561I-S  メソッドの行内呼出しに指定するメソッド名は文字定数または日本語文字定数でなければなりません.メソッドの行内呼出しを無効とします.

(*2)翻訳エラーにならず、作成された目的プログラムは正しく動作します。

[条件1]

  1. 以下のいずれかに連結式を記述している。かつ、

    • プログラム名のAS指定

    • クラス名のAS指定

    • メソッド名のAS指定

    • プロパティ名のAS指定

    • プログラム名定数

    • INVOKE文または行内呼び出しのメソッド名の指定

  2. 1.に記述した連結式の先頭が文字定数である。かつ、

  3. 1.に記述した連結式に16進文字定数が含まれている。かつ、

  4. COBOLソースプログラムと実行時コード系が以下の組み合わせの場合。
      4-1-1) COBOLソースプログラムのコード系がSJISである。かつ、
      4-1-2) 実行時コード系がSJISである。
      または、
      4-2-1) COBOLソースプログラムのコード系がUTF-8である。かつ、
      4-2-2) 実行時コード系がUnicodeである。


[条件2]

  1. 以下のいずれかに連結式を記述している。かつ、

    • プログラム名のAS指定

    • クラス名のAS指定

    • メソッド名のAS指定

    • プロパティ名のAS指定

    • INVOKE文または行内呼び出しのメソッド名の指定

  2. 1.に記述した連結式の先頭が日本語文字定数である。かつ、

  3. 1.に記述した連結式に日本語16進文字定数が含まれている。かつ、

  4. COBOLソースプログラムと実行時コード系が以下の組み合わせの場合。
      4-1-1) COBOLソースプログラムのコード系がSJISである。かつ、
      4-1-2) 実行時コード系がSJISである。


【補足】

以下に指定できる定数は、文字定数または日本語文字定数でなければなりません。

  • プログラム名のAS指定

  • クラス名のAS指定

  • メソッド名のAS指定

  • プロパティ名のAS指定

  • プログラム名定数

  • INVOKE文または行内呼び出しのメソッド名の指定

したがって、発生条件に示す記述は構文規則に違反しており、本来ならば翻訳エラーとなるべき場合です。

5

V1.0L10

V5.0.0

PG98742

以下の[条件1]または[条件2]のいずれかの条件を満たす場合、COBOLプログラムの実行時に正しく動作しないことがある、または、COBOLプログラムの翻訳時にコンパイラが異常終了することがある問題を修正しました。

[条件1]:作業場所節、定数節のいずれかにデータ項目を宣言した場合

  1. TYPE句を指定した項目を従属するレベル番号01の集団項目を定義している。かつ、

  2. 1.の集団項目にREDEFINES句を指定している。かつ、

  3. 1.のデータ項目の長さが2.で再定義されるデータ項目の長さより短い場合。

または

[条件2]:ファイル節にデータ項目を宣言した場合

  1. TYPE句を含むレコード記述項を定義している。かつ、

  2. 同じファイル記述項に1.のレコード記述項とは別のレコード記述項を定義している。(*) かつ、

  3. 1.のレコード記述項の長さが2.のレコード記述項の長さよりも短い場合。

* : ファイル節で同じファイル記述項にレコード記述項を2つ以上書くと、レコード記述項の領域が暗に再定義されます。


例1) 作業場所節、定数節のいずれかにデータ項目を宣言した場合

     01 D1 PIC X(20).     *> SIZE 20 BYTE   D2よりD1が長い。
     01 D2 REDEFINES D1.  *> SIZE  8 BYTE
       02 D21 TYPE T1.    *> SIZE  8 BYTE

     01 T1 TYPEDEF.
       02 TD1 PIC X(8).   *> SIZE  8 BYTE

例2) ファイル節にデータ項目を宣言した場合

  FD FILE1.
    01 R1 PIC X(20).     *> SIZE 20 BYTE    R2よりR1が長い
    01 R2 TYPE T2.       *> SIZE  8 BYTE    暗に再定義され,R1とR2は同じ領域に割り付く

    01 T2 TYPEDEF.
      02 TD2 PIC X(8).   *> SIZE  8 BYTE

6

V1.0L10

V5.0.0

PG97116

以下の条件の場合、MAX関数・MIN関数の正しい実行結果が得られないことがある問題を修正しました。

  1. 翻訳オプションBINARY(BYTE)を指定している。かつ、

  2. 数字を引数とするMAX関数またはMIN関数を記述している。かつ、

  3. 2.の関数の引数が3個以内である。かつ、

  4. 2.の引数に2進項目を指定している。かつ、

  5. 4.の2進項目の領域長が1,3,5,6,7バイトのいずれかである(*1)。かつ、

  6. 2.の関数値が格納される一時的なデータ項目の桁数(*2)が19以上30以下である。かつ、

  7. 2.の引数に定数を指定していない。かつ、

  8. 2.の引数に浮動小数点項目を指定していない。かつ、

  9. 2.の引数にALLを添字とする項目を指定していない。

*1:以下の2進項目が該当します。

---------------------------------------------
桁数                 割り当てられる領域長
符号付き  符号なし
---------------------------------------------
 1 ~ 2   1 ~ 2     1
 5 ~ 6   5 ~ 7     3
10 ~ 11 10 ~ 12    5
12 ~ 14 13 ~ 14    6
15 ~ 16 15 ~ 16    7
---------------------------------------------

*2:関数値が格納される一時的なデータ項目は以下の桁数となります。

整数部桁=全引数の整数部桁数のうち最大の値

小数部桁数=全引数の小数部桁数のうち最大の値

7

V4.0.0

V5.0.0

PG78440

以下の条件の場合、正しい実行結果が得られないことがある問題を修正しました。

  1. 翻訳オプションBINARY(BYTE)またはBINARY(WORD,MLBOFF)が指定されている。かつ、

  2. 以下の組み込み関数が存在する。かつ、

    [A]

    • FUNCTION MAX

    • FUNCTION MIN

    • FUNCTION MEAN

    • FUNCTION MEDIAN

    • FUNCTION RANGE

    [B]

    • FUNCTION ANNUITY

    • FUNCTION NUMVAL

    • FUNCTION NUMVAL-C

    • FUNCTION RANDOM

  3. 2.の関数の引き数が、全て9桁以下の固定小数点数字である。かつ、

  4. 2.の関数が[A]の場合、引き数が4つ以上指定されている。

8

V1.0L10~

V3.1L10

PG64890

以下の条件のとき、翻訳時に数字定数から2進項目への転記に対して不当にエラーメッセージが出力される、あるいは、実行時に正しい実行結果が得られないことがある問題を修正しました。

  1. 翻訳オプションBINARY(BYTE)またはBINARY(WORD,MLBOFF)が指定されている。かつ

  2. 数字定数を2進項目に転記するMOVE文(暗に発生するMOVE文も含む)が存在する。かつ

  3. 2.の数字定数の数値が5桁である。かつ

  4. 2.の転記において「数字定数の小数部桁数 < 受取り側の2進項目の小数部桁数」である。

9

V1.0L10~

V3.1L10

PG64876

以下の条件のとき、実行時に正しい実行結果が得られない問題を修正しました。

  1. 翻訳オプションBINARY(BYTE)またはBINARY(WORD,MLBOFF)が指定されている。かつ

  2. 以下の組み込み関数が存在する。かつ

    • FUNCTION MAX

    • FUNCTION MIN

    • FUNCTION MEAN

    • FUNCTION MEDIAN

    • FUNCTION MIDRANGE

    • FUNCTION VARIANCE

    • FUNCTION RANGE

    • FUNCTION SUM

  3. 2. の関数に指定されている引数の並びの中に、2バイトまたは4バイトの符号無しの2進項目が存在する。かつ

  4. 2. の関数に指定されている引数の並びの中に、10桁以上の固定小数点数字項目が存在しない。

10

V1.0L10~

V3.1L10

PG64787

以下の条件のとき、実行時に正しい実行結果が得られない問題を修正しました。

  1. 翻訳オプションBINARY(BYTE)またはBINARY(WORD,MLBOFF)が指定されている。かつ

  2. 翻訳オプションTRUNCが指定されている。かつ、

  3. 送出し側要素が符号無しの2進項目(*1)、受取り側要素が符号の有無に関わらず、2進項目または内部10進のいずれかであるMOVE文(暗に発生するMOVE文も含む)が存在する。かつ

  4. 3. のMOVE文において、送り側要素と受取り側要素の整数部桁数の大小関係が、「送り側整数部桁数 > 受取り側整数部桁数」である。かつ

  5. 送出し側要素の符号無し2進項目の領域長が、2または4バイトである。かつ

  6. 送出し側要素の符号無し2進項目が、最左端ビットがONの値を保持している。

11

V1.0L10

V3.1L10

PG64711

以下の条件のとき、実行時に正しい実行結果が得られない問題を修正しました。

  1. 翻訳オプションBINARY(BYTE)またはBINARY(WORD,MLBOFF)が指定されている。かつ

  2. 翻訳オプションOPTIMIZEが指定されている。かつ、

  3. 以下a,bのいずれかに該当するソース記述が存在する場合。

    1. 以下の条件を全て満足する算術文

      • 受取り側要素(*1)に符号無し2進項目(*2)が指定されている。

      • 受取り側要素(*1)の符号無し2進項目の領域長が、2バイトである。

      • 受取り側要素(*1)が、その算術文の算術式中で使用されている。

      • 受取り側要素(*1)の小数部桁数が、その算術文の中間結果精度の小数部桁数より小さい。

      • 算術文がCOMPUTE文の場合、[NOT] ON SIZE ERROR句の指定がない。

    2. 以下の条件を全て満足するMOVE文(暗に発生するMOVE文も含む)。

      • 受取り側要素に符号無しの2進項目(*2)が指定されている。

      • 受取り側要素の2進領域長が、2バイトである。

      • 受取り側要素が、送出し側要素の添字中に使用されている。

      • 受取り側要素の小数部桁数が、送出し側要素の小数部桁数より小さい。

      • 翻訳オプションCHECK(BIND)が指定されていない。

*1: DIVIDE文のREMAINDER指定も含みます。

*2: USAGE IS COMP-5

12

V1.0L10

V3.1L10

PG63990

以下の条件のとき、実行時にSEARCH ALL文で正しく表検索できない問題を修正しました。

  1. SEARCH文(SEARCH ALL)が存在する。かつ

  2. SEARCH文のWHEN指定に複数の条件を記述している、または、WHEN指定のキー項目に指定されている添字が多次元である。かつ、

  3. 条件の左辺(キー項目)に次のいずれかのUSAGEの項目を記述している。かつ、

    • COMP-5 (翻訳オプションASCOMP5によりみなされたものも含む)

    • BINARY-SHORT

    • BINARY-LONG

    • BINARY-DOUBLE

  4. 条件の右辺(比較対象項目)に浮動小数点項目または浮動小数点定数を記述している場合。

13

V2.0L10~

V3.1L10

PG62941

以下の条件のとき、翻訳時に翻訳時メッセージ(JMN1010I-S)が出力されない問題を修正しました。

  1. 入力ソースがUnicode(UTF-8)である。かつ、

  2. 日本語利用者語の語頭または語尾のどちらかに全角ハイフンがある。かつ、

  3. 全角ハイフンのコードが0xEFBC8Dである場合。

14

V1.0L10~

V2.1L10

PG49000

以下の条件のとき、実行時にSQL文の処理結果が意図しないものとなる問題を修正しました。

  1. COBOLのデータベース機能(ODBC接続またはADO.NET接続)を使用している。かつ、

  2. 1つの埋込みSQL文を複数行に渡って記述している。かつ、

  3. 埋込みSQL文中に文字列定数を記述している。かつ、

  4. 3.の文字列定数の直後に改行がある。かつ、

  5. 次行に以下のいずれかの条件に当てはまるSQL文を記述している場合。

    • 最終トークンが 4.と同条件の文字列定数ではない場合、有効バイト数(*2)37バイトのSQL文。

      例)INSERT INTO ADDRTBL VALUES (103, '03 ', 'FUJITSU'▽
                          ,'FUJITSU FMV-DESKTOP CELSIUS', 50000
                           ↑有効バイト数37バイトのSQL文
    • 最終トークンが 4.と同条件の文字列定数である場合、有効バイト数(*2)38バイトのSQL文。

      例)INSERT INTO ADDRTBL VALUES (103, '03 ', 'FUJITSU'▽
                         ,'FUJITSU FMV-DESKTOP CELSIUS WINDOWS'
                           ↑有効バイト数38バイトのSQL文

*1:▽は改行を表します。

*2:連続した空白は1バイトとみなします。

例)ORDER BY MK12345678901 , MK1234567890

上記の例の'FUJITSU'が以下のように処理されます。

V2.1L10以前: 「FUJITSU'」 (末尾に「'」が付加される)

V3.0L10以降: 「FUJITSU」

注:V/Lは障害が存在する範囲を示します。