GTM-MML4VXJ
Skip to main content

プログラム修正一覧 : Linux (x64) NetCOBOL開発環境

V12.2.0

ここに記載している情報は、V12.2.0で修正されている旧版で発生した障害一覧です。

項番 発生V/L 修正V/L P番号 現象
1 V12.1.0 V12.2.0 PH15808

以下の条件の場合、翻訳前ソース変換機能を使用したCOBOLプログラムの変換時、変換対象でない条件式(*1)に対して誤って変換を行います。


*1: 変換対象でない条件式には、次の2種類があり、変換元ソースプログラムをそのまま翻訳することで確認できます。

  • 変換の必要がない記述: 翻訳処理が正常終了
  • NetCOBOLの文法では許可されない記述: 翻訳処理でエラー出力

その結果、以下のどれかの現象が発生する場合があります。

[現象1] 変換の必要がない記述に対し、次のどれかの不正な変換を行い、後続の翻訳処理でエラーが出力される

  1. PICTURE句の文字列がない不正なデータ項目を出力する
  2. 条件式中に不正なFUNCTION CAST-ALPHANUMERICの記述を挿入する
  3. 条件式中の表意定数ZEROを日本語定数NC"0"に変換する

[現象2] 次のどちらかの変換の必要がない記述に対し、変換を行い、後続の翻訳処理が正常終了する(*2)

  • 2進項目または内部10進項目と、項類が数字の特殊レジスタとの比較
  • 日本語項目と、表意定数SPACE/HIGH-VALUE/LOW-VALUEとの比較

[現象3] 次のNetCOBOLの文法では許可されない記述に対し、変換を行い、後続の翻訳処理が正常終了する(*3)

  • 2進項目または内部10進項目と、表意定数SPACE/HIGH-VALUE/LOW-VALUEとの比較

[現象4] NetCOBOLの文法では許可されない記述に対し、不正な変換を行い、後続の翻訳処理でエラーが出力される(*4)


[現象5] 変換の必要がない記述に対し、次のどちらかの不正な警告メッセージを出力する(*5)

PRCV-m0509E PERFORM文(UNTIL指定)またはSEARCH文に指定された英数字項目と内部10進または2進項目との比較は変換できません.

PRCV-m0510E PERFORM文(UNTIL指定)またはSEARCH文に指定された文字定数と内部10進または2進項目との比較は変換できません.

*2: 変換前後の記述で、COBOLプログラムの動作に変更はありません。

*3: 変換後の記述は、移行前のCOBOLプログラムの動作に対し、互換性があります。

*4: 本来変換されず、後続の翻訳処理でエラーが出力される記述です。詳細は【補足2】を参照してください。

*5: 変換は行われません。また、警告メッセージの出力誤りのため、対処は不要です。


[条件]

  1. 次のどれかの方法により、翻訳前ソース変換機能を有効としている。かつ、
    • cobolコマンドに-CVmオプションを指定している
    • NetCOBOL Studioで翻訳オプションPRECONV(MF)を指定している
    • cobpreconvコマンドを使用している
  2. 条件式を次のどれかに記述している。かつ、
    • IF文
    • EVALUATE文の選択対象
    • PERFORM文のUNTIL指定
    • SEARCH文のWHEN指定
  3. 2.の条件式が次のどちらかを満たしている。かつ、
    1. 比較条件の一方の作用対象に特殊レジスタLENGTH OFを指定している。
    2. 次を満たす組合せ条件である。
      1. 2番目以降の条件に条件名を記述している。かつ、
      2. b.の1.の直前の条件の右辺に以下のどれかを指定している。

        - 日本語定数

        - 表意定数SPACE/HIGH-VALUE/LOW-VALUE

        - 特殊レジスタ

  4. 3.のa.の特殊レジスタLENGTH OFに記述した項目と3.のa.のもう一方の作用対象、または、3.のb.1.の条件名と3.のb.2.のもう一方の作用対象の組合せ(*6)が、以下のどれかである場合。
    1. 2進項目または内部10進項目 と 英数字項目
    2. 日本語項目 と 英数字項目または外部10進項目
    3. 2進項目または内部10進項目 と 文字定数
    4. 日本語項目 と 文字定数
    5. 日本語項目 と 表意定数ZEROまたはQUOTE

*6: 組合せの左右を入れ替えた場合を含みます。


【補足1】

[現象1]および[現象5]について、条件を補足します。

  • 条件(3.のa.)

    [現象1]のb. 特殊レジスタLENGTH OFに日本語項目、比較対象に外部10進項目

    [現象1]のc. 特殊レジスタLENGTH OFに日本語項目、比較対象に表意定数ZERO

  • 条件(3.のb.)

    組合せ条件の記述を以下(条件名をZ)と仮定します。

     X = Y OR Z
    

    組合せを以下に記載します。

    • [現象1]のa.

      X: 英数字項目

      Y: 表意定数SPACE/HIGH-VALUE/LOW-VALUE

      Z: 2進項目または内部10進項目

    • [現象1]のb.
      • X: 英数字項目または外部10進項目

        Y: 表意定数SPACE/HIGH-VALUE/LOW-VALUE

        Z: 日本語項目、

        または、

      • X: 日本語項目

        Y: 日本語定数

        Z: 英数字項目または外部10進項目、

        または、

      • X: 外部10進項目

        Y: 項類が数字の特殊レジスタ

        Z: 日本語項目

    • [現象1]のc.

      X: 表意定数ZERO

      Y: 項類が数字の特殊レジスタ

      Z: 日本語項目

なお、条件(4.のa.)または(4.のc.)を満たし、かつ、条件式がPERFORM文のUNTIL指定またはSEARCH文に記述された場合は、[現象5]となります。


【補足2】

[現象4]は、次のどれかの記述に対し発生します。

  • 項類が数字の特殊レジスタと次のどれかとの比較
    • 英数字項目
    • 文字定数
    • 表意定数SPACE/HIGH-VALUE/LOW-VALUE/QUOTE
  • 特殊レジスタLENGTH OFと日本語項目の比較
  • 特殊レジスタLENGTH OFに文字定数または表意定数を指定した作用対象を含む比較
  • 次のどれかと、日本語定数との比較
    • 2進項目
    • 内部10進項目
    • 英数字項目
    • 外部10進項目
  • 定数同士の比較

これらの記述は、NetCOBOLの文法では許可されず、翻訳前ソース変換機能でも変換を行わない仕様です。

このため、本障害の修正を適用した場合、誤った変換が行われないように変更されますが、変換後ソースプログラムは翻訳エラーとなります。

NetCOBOLの文法で許可されるよう、ソースプログラムを修正してください。

2 V12.1.0 V12.2.0 PH15817

以下の条件の場合、翻訳前ソース変換機能を使用したCOBOLプログラムの変換時に、USAGE句にCOMP-Xを指定した英数字項目と、英数字項目または文字定数の比較に対し、誤った変換を行います。

その結果、変換後のCOBOLプログラムの実行時、条件式の判定が移行前のプログラムと異なる場合があります。

[条件]

  1. 次のどれかの方法により、翻訳前ソース変換機能を使用している。かつ、
    • cobolコマンドに-CVmオプションを指定して翻訳している
    • NetCOBOL Studioで翻訳オプションPRECONV(MF)を指定して翻訳している
    • cobpreconvコマンドを使用して変換している
  2. USAGE句にCOMP-Xを指定した英数字項目を宣言している。かつ、
  3. 2.の項目と英数字項目または文字定数を比較した条件式を記述している。かつ、
  4. 3.の条件式を次のどちらかに記述している場合。
    • IF文
    • EVALUATE文の選択対象(*)

*: EVALUATE文の選択主体は、翻訳前ソース変換機能の変換対象ではありません。

3 V10.1.0~V12.1.0 V12.2.0 PH15858

以下の条件の場合、COBOLプログラムの翻訳時に、以下のどちらかのエラーが出力される場合があります。

JMN1123I-S 許されない語'XXXX'が現れました.次の認識できる句,段落,節または部まで無効になります.

JMN2500I-S 文が現れなければいけない所に,語'XXXX'が現れました.次の文または手続き名まで読み飛ばします.

XXXX : 条件 1.の文の名前が設定されます。

[条件]

  1. 以下のどれかの文(*)を記述している。かつ、
    • EJECT
    • SKIP1
    • SKIP2
    • SKIP3
    • TITLE
  2. 翻訳オプションRSVに以下のどれかを指定している場合。
    • V30
    • V40
    • V61
    • V70
    • V81
    • V90
    • V91
    • V1020
    • V1040
    • V1050
    • V1100

*: OSIV互換の翻訳指示文で、記述した場合は注釈とみなされます。

4 V12.1.0 V12.2.0 PH16220

以下の条件の場合、翻訳前ソース変換機能を使用したCOBOLプログラムの変換時、変換が行われない、または、誤った変換が行われる場合があります。誤った変換を行った結果、後続の翻訳処理で翻訳エラーが出力される、または、変換後のCOBOLプログラムの実行時、COBOLプログラムの動作が移行前のプログラムと異なる場合があります。

現象は、条件 7.に応じて、以下のとおりとなります。

  • 条件(7.のa.)の場合

    次の変換メッセージが出力され、変換が行われません。

    PRCV-m0407E 日本語項目のVALUE句に指定された継続指定のある文字定数は変換できません.

  • 条件(7.のb.)の場合

    次のどちらかの変換メッセージが出力され、変換が行われません。

    PRCV-m0516E 継続指定のある文字定数から日本語項目への転記は変換できません.

    PRCV-m0517E 継続指定のある16進定数から日本語項目への転記は変換できません.

  • 条件(7.のc.)の場合

    次のどちらかとなります。

    • 変換対象とすべき記述に対する変換が行われない
    • 本来変換対象とならない記述に対して、誤った変換を行う

[条件]

  1. 次のどれかの方法により、翻訳前ソース変換機能を使用している。かつ、
    • cobolコマンドに-CVmオプションを指定して翻訳している
    • NetCOBOL Studioで翻訳オプションPRECONV(MF)を指定して翻訳している
    • cobpreconvコマンドを使用して変換している
  2. 変換元ソースプログラムおよびCOPY文で取り込まれる登録集ファイル中に文字定数または16進文字定数を記述している。かつ、
  3. 2.の定数値の終了を示す引用符の直後に改行文字がある。かつ、
  4. 3.の引用符の文字位置(nとする)が72よりも小さい。かつ、
  5. 変換元ソースプログラムおよびCOPY文で取り込まれる登録集ファイル中にn+1番目の文字位置が3.と同じ引用符である行が存在する。かつ、
  6. 5.の行が3.の行よりも前にある。かつ、
  7. 2.の定数が次のどれかに指定されている場合。
    1. 日本語項目のVALUE句 (文字定数だけ)
    2. 日本語項目または日本語編集項目を受取り側作用対象としたMOVE文の送出し側作用対象
    3. 次のどれかに記述した条件式の右辺
      • IF文(THEN指定のあるIF文の最後の条件式を除く)
      • EVALUATE文の選択対象
      • PERFORM文のUNTIL指定
      • SEARCH文のWHEN指定

プログラム例)

条件(7.のc.)を満たす条件式のプログラム例を示します。

000010  01 X01 PIC X(9).
000020  01 N01 PIC N(9).
000030  01 B01 PIC 9(9) BINARY.
000040  PROCEDURE DIVISION.
000050*--+---------+123456789+
000060     DISPLAY  "START".
000070*--+---------+123456789+
000080     IF  X01 = "ABC"
000090     AND SPACE = N01
000100     THEN
000110       DISPLAY "OK"
000120     END-IF.

000060の行:条件 5.の行で、27番目の文字が「"」

000080の行:条件 3.の行で、26番目の文字「"」が最後の文字

5 V12.1.0 V12.2.0 PH16439

以下の条件の場合、翻訳前ソース変換機能を使用したCOBOLプログラムの変換時、最も優先される指定である@OPTIONSに記述した一部の翻訳オプションの指定が無効となり、指定値と異なる値が有効となる場合があります。

なお、後続の翻訳処理では、@OPTIONSの指定値は通常どおり有効となります。

[条件]

  1. 以下のどれかの方法により、翻訳前ソース変換機能を有効としている。かつ、
    • cobolコマンドに-CVmオプションを指定している
    • NetCOBOL Studioで翻訳オプションPRECONV(MF)を指定している
    • cobpreconvコマンドを使用している
  2. 変換元ソースプログラムに存在する翻訳単位は1つ(*1)である。かつ、
  3. 変換元ソースプログラムの先頭に@OPTIONSを記述している。かつ、
  4. 3.の行に続き、連続して@OPTIONSを記述している。かつ、
  5. 4.の行に次のどれかの翻訳オプションを指定している。かつ、
    • ENCODE
    • RCS
    • RSV
    • SRF
    • BINARY(WORD)
    • TAB
  6. 5.の翻訳オプションの指定値が翻訳オプションの省略値(*2)と異なる、または、
    5.の翻訳オプションの指定値と異なる指定値を3.の行または@OPTIONS以外の方法(*3)で有効としている場合。

*1: 翻訳前ソース変換機能では、複数の翻訳単位を記述したソースプログラムは変換できません。

*2: 翻訳前ソース変換機能における、翻訳オプションの省略値は次のとおりです。

  ENCODE(UTF8)
  RSV(ALL)
  SRF(FIX)
  BINARY(BYTE)
  TAB(8)

*3: 翻訳オプションの指定方法および優先順位は次のとおりです。

  1. ソースプログラム中の翻訳指示文(@OPTIONS)による指定
  2. -WCオプションによる指定
  3. 環境変数COBOLOPTSの-WCオプションによる指定
  4. コマンドの-iオプションによる指定
  5. NetCOBOL Studioの[翻訳オプション]ページによる指定(COBOLコマンドだけ指定可)
  6. 環境変数COBOLOPTSの-iオプションによる指定

【補足】

翻訳前ソース変換機能による変換時、2行目以降に記述した@OPTIONSの指定が無効となり、指定値と異なる値が有効となる場合の現象について説明します。

@OPTIONSに指定した翻訳オプションに応じて、次の現象が発生する場合があります。

  • 翻訳オプションENCODE(UTF8)またはRCS(UTF16)

    不正な変換後ソースプログラムが出力され、後続の翻訳処理で次の翻訳エラーが出力される場合がある

    JMN5590I-S 翻訳オプション@1@指定の場合,'@2@'は 使用できません.

    @1@: ENCODE(UTF8)またはRCS(UTF16)
    
    @2@: FUNCTION CAST-ALPHANUMERICまたはFUNCTION NATIONAL
    
  • 翻訳オプションENCODE(SJIS)、RCS(ACP)またはRCS(SJIS)

    次の不正な変換エラーが出力される

    PRCV-ER024S 翻訳オプション@1@は指定できません.変換を中止します.

    @1@: ENCODE(UTF8)またはRCS(UTF16)
    
  • 翻訳オプションRSV

    利用者語として使用されている「NetCOBOLでだけ予約語となる語」が変換されず後続の翻訳処理で翻訳エラーが出力される場合がある

  • 翻訳オプションSRF

    次のどれかの現象が発生する場合がある

    • 次の不正な変換エラーが出力される

      PRCV-ER024S 翻訳オプションSRF(FREE)は指定できません.変換を中止します.

    • 変換後ソースプログラムの行の終わりの一部が出力されない
    • 不正な変換エラーが出力され、変換処理が中断する
  • 翻訳オプションBINARY(WORD)

    ARITHMETIC(31)が有効な場合、後続の翻訳処理で以下の翻訳エラーが出力される

    JMN0126I-S 翻訳オプション@1@は,翻訳オプション@2@と同時に指定できません.翻訳オプション@1@の指定は無効となります.

    @1@: BINARY(BYTE)またはARITHMETIC(31)
    
    @2@: ARITHMETIC(31)またはBINARY(BYTE)
    
  • 翻訳オプションTAB

    次のどちらかの現象が発生する場合がある

    • 変換後ソースプログラムの行の終わりの一部が出力されない
    • 不正な変換エラーが出力され、変換処理が中断する
6 V12.1.0 V12.2.0 PH16578

翻訳前ソース変換機能を使用したCOBOLプログラムの変換時、項類が日本語の作用対象を一方とする比較に対する変換規則に誤りがありました。

その結果、以下の条件の場合、変換後のCOBOLプログラムの実行時、条件式の判定が移行前のプログラムと異なる場合があります。

[条件]

  1. 次のどれかの方法により、翻訳前ソース変換機能を使用している。かつ、
    • cobolコマンドに-CVmオプションを指定して翻訳している
    • NetCOBOL Studioで翻訳オプションPRECONV(MF)を指定して翻訳している
    • cobpreconvコマンドを使用して変換している
  2. 日本語項目または日本語編集項目を宣言している。かつ、
  3. 2.の項目と次のどれかを比較した条件式を記述している。かつ、
    • 英数字項目
    • 英字項目
    • 英数字編集項目
    • 数字編集項目
    • 外部10進項目
    • 文字定数(ALL定数は除く)
    • 16進文字定数(ALL定数は除く)
  4. 3.の条件式の作用対象が次のどれかを満たす。かつ、
    • 作用対象の長さが異なる
    • 作用対象のどれかを部分参照している
    • 作用対象のどれかのPICTURE句の反復回数を表す整数に名前付き定数を指定している
  5. 3.の条件式を次のどれかに記述している場合。
    • IF文
    • EVALUATE文の選択対象
    • PERFORM文のUNTIL指定
    • SEARCH文のWHEN指定
7 V12.1.0 V12.2.0 PH16634

以下の条件の場合、翻訳前ソース変換機能を使用したCOBOLプログラムの変換時、ソースプログラム中に展開済みのCOPY文の行が注釈行に変換されない場合があります。

その結果、変換後のCOBOLプログラムの翻訳時、以下のどれかの翻訳エラーが出力されます。

  • 条件(3.のa.)を満たす場合

    JMN2504I-S 利用者語'@1@'が多重定義です.

    JMN1207I-S @1@句が重複しています.

    JMN1217I-S ALPHABET句またはCLASS句で,数字定数は1以上で256以下でなければなりません.0は1と,256以上は256とみなします.

  • 条件(3.のb.)を満たす場合

    JMN1123I-S 許されない語'@1@'が現れました.次の認識できる句,段落,節または部まで無効になります .

  • 条件 4.のCOPY文の記述が他社COBOL固有の場合

    JMN1062I-S COBOL登録集'@1@'が割り当てられていません.または,登録集として割り当てられたデ ータセットが,登録集として使用できない編成若しくはレコード形式です.

    JMN1081I-S COPY文の終止符の直後は,空白でなければなりません.

    JMN1076I-S COPY文の書き方に誤りがあります.または,分離符の終止符で止められていません.

[条件]

  1. 次のどれかの方法により、翻訳前ソース変換機能を使用している。かつ、
    • cobolコマンドに-CVmオプションを指定して翻訳している
    • NetCOBOL Studioで翻訳オプションPRECONV(MF)を指定して翻訳している
    • cobpreconvコマンドを使用して変換している
  2. 次のどちらかにより、COPY文を記述している場合、取り込んだ登録集原文を変換後ソースプログラム中に展開している。かつ、
    • (1.のa.)または(1.のb.)を使用している
    • (1.のc.)を使用している、かつ、変換オプションEXPAND-COPYにYESを指定している
  3. 次のどちらかの記述がある。かつ、
    1. 特殊名段落にNUMERIC SIGN句を指定している
    2. ASSIGN句にEXTERNALまたはDYNAMICを指定している
  4. 3.の直後にCOPY文が記述されている場合。(*)

*: 条件 4.は、それぞれ以下の状態を指します。

COPY文の直前にピリオドがある場合は、本障害の条件に合致しません。

  • 条件(3.のa.)
      000010     NUMERIC SIGN IS TRAILING SEPARATE
      000020     COPY X.
    
  • 条件(3.のb.)
      000010     SELECT FILE01 ASSIGN TO EXTERNAL
      000020     COPY X.
    
8 V12.1.0 V12.2.0 PH17154

以下の条件の場合、翻訳前ソース変換機能を使用したCOBOLプログラムの変換時、以下のエラーメッセージが出力され、変換が失敗します。

PRCV-ER022U 変換処理が続行不可能となりました.(モジュール名=C2GETNAM,詳細コード=001)

[条件]

  1. 次のどれかの方法により、翻訳前ソース変換機能を使用している。かつ、
    • cobolコマンドに-CVmオプションを指定して翻訳している
    • NetCOBOL Studioで翻訳オプションPRECONV(MF)を指定して翻訳している
    • cobpreconvコマンドを使用して変換している
  2. COPY文を記述している。かつ、
  3. 2.の終わりを示す分離符の終止符が、COPY文を記述した行とは異なる行の先頭にある場合。
9 V12.1.0 V12.2.0 PH17155

以下の条件の場合、翻訳前ソース変換機能を使用したCOBOLプログラムの変換時、誤ってCOPY文およびREPLACE文の仮原文中の記述を変換します。その結果、次のどれかの事象が発生する場合があります。

[現象1] 変換時に内部矛盾が発生し、変換エラーが出力される、または、異常終了する

[現象2] 不正な変換を行い、後続の翻訳処理で次のどれかの事象が発生する

  • [現象2-1] 原文の置き換えが行われないことにより、翻訳は正常終了するが、COBOLプログラムの実行時に実行結果に誤りがある
  • [現象2-2] 原文の置き換えが行われないことにより、翻訳時に翻訳エラーが出力される
  • [現象2-3] COPY文またはREPLACE文の記述に対し、翻訳時に次の翻訳エラーが出力される

    JMN1076I-S COPY文の書き方に誤りがあります.または,分離符の終止符で止められていません.

    JMN1083I-S REPLACE文の書き方に誤りがあります.または,分離符の終止符で止められていません.

  • [現象2-4] 誤った仮原文による原文の置き換えが行われることにより、翻訳時に翻訳エラーが出力される
  • [現象2-5] 誤った仮原文による原文の置き換えが行われることにより、翻訳が正常終了するものの、COBOLプログラムの実行時に実行結果に誤りがある

[現象3] 仕様外の変換を行っても、翻訳が正常終了し、COBOLプログラムの実行時に移行前と同じ実行結果となる


【補足】

翻訳時の原文の置き換え結果は、ソースプログラムリストにより確認することができます。COPY文を記述している場合は、翻訳オプションCOPYの指定が必要です。


[条件]

[X]または[Y]の条件を満たす場合。

[X]

  1. 次のどれかの方法により、翻訳前ソース変換機能を使用している。かつ、
    • (1-1) cobolコマンドに-CVmオプションを指定して翻訳している
    • (1-2) NetCOBOL Studioで翻訳オプションPRECONV(MF)を指定して翻訳している
    • (1-3) cobpreconvコマンドを使用して変換している
  2. REPLACE文を記述している。かつ、
  3. 次のどちらかに翻訳前ソース変換機能の変換対象となる記述が含まれる場合。
    • (3-1) 2.のBYの左辺
    • (3-2) 2.のBYの右辺

[Y]

  1. 次のどちらかの方法により、翻訳前ソース変換機能を使用した翻訳を行っている。かつ、
    • (1-1) cobolコマンドに-CVmオプションを指定して翻訳している
    • (1-2) NetCOBOL Studioで翻訳オプションPRECONV(MF)を指定して翻訳している
  2. REPLACING指定のあるCOPY文を記述している。かつ、
  3. 2.のBYの左辺または右辺に仮原文を指定している。かつ、
  4. 3.の仮原文に1つ以上の分離符の終止符が含まれている。かつ、
  5. 4.のうち、最初の分離符の終止符が次のどれかを満たす場合。
    • (5-1) BYの左辺にあり、その仮原文の右側の仮原文区切り記号と異なる行にある
    • (5-2) BYの左辺にあり、その仮原文の右側の仮原文区切り記号と同じ行にある
    • (5-3) BYの右辺にあり、その仮原文の右側の仮原文区切り記号と異なる行にある

【補足】

[現象1]は、条件[X]を満たす場合、発生する場合があります。

また、[現象1]が発生しない場合、条件ごとに次のどれかの現象となります。

・[X]-(3-1): [現象2-1]、[現象2-2]、[現象2-3(*)]、または[現象3]

・[X]-(3-2): [現象2-3(*)]、[現象2-4]、[現象2-5]、または[現象3]

・[Y]-(5-1): [現象2-1]または[現象2-2]

・[Y]-(5-2): [現象2-3]

・[Y]-(5-3): [現象2-4]


*: [現象2-3]は、条件(1-1)または条件(1-2)を満たす場合だけ、発生します。

10 V12.1.0 V12.2.0 PH17156

以下の条件の場合、翻訳前ソース変換機能を使用したCOBOLプログラムの変換時、次のどれかの事象が発生する場合があります。

[現象1] 変換対象の記述に対して変換が行われず、後続の翻訳処理で翻訳エラーが出力される

[現象2] 変換対象の記述に対して誤った変換を行い、後続の翻訳処理で翻訳エラーが出力される

[現象3] 変換対象の記述に対して誤った変換を行い、変換後のCOBOLプログラムの実行時に実行結果に誤りがある

[現象4] 変換対象ではない記述に対して誤って変換を行い、後続の翻訳処理で翻訳エラーが出力される

[現象5] 変換対象ではない記述に対して誤って変換を行い、変換後のCOBOLプログラムの実行時に実行結果に誤りがある

[現象6] 出力されるべき次のどちらかの変換メッセージが出力されない

PRCV-m0509E PERFORM文(UNTIL指定)またはSEARCH文に指定された英数字項目と内部10進または2進項目との比較は変換できません.

PRCV-m0510E PERFORM文(UNTIL指定)またはSEARCH文に指定された文字定数と内部10進または2進項目との比較は変換できません.


[条件]

  1. 次のどれかの方法により、翻訳前ソース変換機能を使用している。かつ、
    • cobolコマンドに-CVmオプションを指定して翻訳している
    • NetCOBOL Studioで翻訳オプションPRECONV(MF)を指定して翻訳している
    • cobpreconvコマンドを使用して変換している
  2. 次のどれかの条件を満たす場合。(*2)
    1. 次の条件を満たすEVALUATE文を記述している場合。
      • (a1) EVALUATE文のWHEN指定に次のどちらかの選択対象を記述している。かつ、

        ・(a1-1) ALSO指定により、2つ以上の選択対象を記述している

        ・(a1-2) THRUまたはTHROUGH指定を記述している

      • (a2) (a1)の1つ以上の選択対象の中に、比較における変換対象(*1)と同じ属性となる作用対象の組合せが含まれる場合。
    2. 次の条件を満たすPERFORM文を記述している場合。
      • (b1) VARYING指定を記述している。かつ、
      • (b2) (b1)に続き、1つ以上のAFTER指定を記述している。かつ、
      • (b3) (b1)または(b2)のUNTIL指定に記述した条件式が、比較における変換対象(*1)である場合。
    3. 次の条件を満たす場合。
      • (c1) VARYING指定のあるPERFORM文を記述している。かつ、
      • (c2) (c1)のPERFORM文に1つ以上のAFTER指定を記述している。かつ、
      • (c3) (c1)のPERFORM文より後方に、次のどれかに記述した条件式がある。かつ、

        ・IF文

        ・EVALUATE文の選択対象

        ・PERFORM文のUNTIL指定

        ・SEARCH文のWHEN指定

      • (c4) (c3)の条件式が、比較における変換対象(*1)である場合。
    4. 次の条件を満たすPERFORM文を記述している場合。
      • (d1) 手続き名を記述したPERFORM文(そとPERFORM文)である。かつ、
      • (d2) (d1)のPERFORM文にUNTIL指定を記述している。かつ、
      • (d3) (d2)のUNTIL指定に記述した条件式が、比較における変換対象である(*1)。かつ、
      • (d4) (d1)のPERFORM文が分離符の終止符で終わっている場合。

*1: 翻訳前ソース変換機能では、次のどれかを満たす作用対象の組合せ(組合せの左右を入れ替えた場合を含む)が記述された条件式を変換対象としています。

  1. 日本語項目 と 英数字項目または外部10進項目
  2. 日本語項目 と 文字定数
  3. 日本語項目 と 表意定数ZEROまたはQUOTE
  4. 2進項目または内部10進項目 と 英数字項目
  5. 2進項目または内部10進項目 と 文字定数

なお、d.またはe.の作用対象がPERFORM文のUNTIL指定またはSEARCH文のWHEN指定に記述された場合、変換は行わずに変換メッセージだけを出力します。このため、本障害により出力すべき変換メッセージが出力されない場合があります。


*2: 条件により、次の現象となります。

  • a.の場合: [現象1]、[現象2]、[現象4]、または[現象5]
  • b.の場合: [現象1]、[現象2]、または[現象6]
  • c.の場合: [現象1]、[現象3]、または[現象6]
  • d.の場合: [現象1]または[現象6]
11 V12.1.0 V12.2.0 PH17157

以下の条件の場合、翻訳前ソース変換機能を使用したCOBOLプログラムの変換時、次のどちらかのエラーが発生する場合があります。

PRCV-ER116U 作業ファイル"$1"の書込みで領域不足が発生しました.変換を中止します.

PRCV-ER128S 条件式の1つの作用対象を構成するCOBOLの語の個数が定量制限を超えています.変換を中止します.

なお、PRCV-ER116Uのエラーが出力される場合、ディスクの空き容量がなくなるまで、巨大な作業ファイルを生成するため、処理が終わらないように見える場合があります。

PRCV-ER116Uのエラーが出力された場合、作業ファイルは自動で削除されますが、本エラーを待たずにコマンドを強制終了した場合など、必要に応じて、手動でファイルを削除してください。

作業ファイルは、次の場所に「XXXXXXXX.WKn」(XXXXXXXX:8桁の数字、n: 1,2,または3)の名前で出力されます。

  • 変換オプションWORKDIRを指定している場合: 指定したディレクトリ
  • 変換オプションWORKDIRを指定していない場合
    • cobpreconvコマンドを使用している場合: -oオプションで指定した出力ディレクトリ
    • 上記以外の場合: 変換元ソースプログラムと同じディレクトリにある.preconvディレクトリ

[条件]

  1. 次のどれかの方法により、翻訳前ソース変換機能を使用している。かつ、
    • cobolコマンドに-CVmオプションを指定して翻訳している
    • NetCOBOL Studioで翻訳オプションPRECONV(MF)を指定して翻訳している
    • cobpreconvコマンドを使用して変換している
  2. 次のどれかの条件を満たす場合。(*1)
    • 条件式(*2)またはMOVE文に記述した、添え字または部分参照における、左括弧に対応する右括弧が記述されていない
    • 条件式(*2)の直後に無条件文またはピリオドが存在しない
    • 条件式(*2)の作用対象となる語が存在しない
    • 条件式(*2)に記述した組込み関数における、左括弧に対応する右括弧が記述されていない
    • COPY文が分離符の終止符で止められていない
    • MOVE文における必要語"TO"が記述されていない

*1: 原始文操作機能の原文の置き換えが行われていない状態で、条件 2.を満たす場合を含みます。

*2: 次のどれかに記述した条件式が対象となります。

  • IF文
  • EVALUATE文の選択対象
  • PERFORM文のUNTIL指定
  • SEARCH文のWHEN指定
12 V12.1.0 V12.2.0 PH17158

以下の条件の場合、翻訳前ソース変換機能を使用したCOBOLプログラムの変換時、局所記憶節にGLOBAL句を指定したデータ項目を生成し、後続の翻訳処理で次の翻訳エラーが出力される場合があります。

JMN1304I-S ファイル節,作業場所節,定数節,連絡節または基底場所節の01レベル項目以外に,GLOBAL句は指定できません.

[条件]

  1. 次のどれかの方法により、翻訳前ソース変換機能を使用している。かつ、
    • cobolコマンドに-CVmオプションを指定して翻訳している
    • NetCOBOL Studioで翻訳オプションPRECONV(MF)を指定して翻訳している
    • cobpreconvコマンドを使用して変換している
  2. 局所記憶節の見出しを記述している。かつ、
  3. 次のどちらかの条件を満たす(*1)場合。
    • ASSIGN句のファイル識別名にデータ名を指定、かつ、そのデータ名を宣言していない
    • IF文またはEVALUATE文の選択対象に、次のどちらかを満たす作用対象の組合せ(*2)が記述された条件式が存在する
      • 2進項目または内部10進項目 と 英数字項目
      • 2進項目または内部10進項目 と 文字定数

*1: このような記述がある場合、翻訳前ソース変換機能では作業場所節にデータ項目を生成する変換を行います。

*2: 組合せの左右を入れ替えた場合を含みます。

13 V12.1.0 V12.2.0 PH17159

以下の条件の場合、翻訳前ソース変換機能を使用したCOBOLプログラムの変換時、次のどれかの事象が発生する場合があります。

[現象1] 次のどれかの変換エラーが出力される

PRCV-ER108S COBOL登録集''が割り当てられていません.

PRCV-ER127S ファイル識別名と同名のデータ項目が宣言されています.変換を中止します.

PRCV-ER126S 異なるASSIGN句のファイルに対し重複した名前が記述されています.変換を中止します.

[現象2] 変換対象の記述に対して変換が行われず、後続の翻訳処理で翻訳エラーが出力される

[現象3] 変換対象の記述に対して誤った変換を行い、後続の翻訳処理で翻訳エラーが出力される

[現象4] 変換対象でない記述に対して誤って変換を行い、後続の翻訳処理で翻訳エラーが出力される

[現象5] 変換対象でない記述に対して誤って変換を行い、変換後のCOBOLプログラムの実行時に実行結果に誤りがある


[条件]

  1. 次のどれかの方法により、翻訳前ソース変換機能を使用している。かつ、
    • cobolコマンドに-CVmオプションを指定して翻訳している
    • NetCOBOL Studioで翻訳オプションPRECONV(MF)を指定して翻訳している
    • cobpreconvコマンドを使用して変換している
  2. 次のどれかの2つの語の並びを複数の行に渡って記述(*1)している。かつ、
    • (2a) ALL定数の"ALL"と文字定数
    • (2b) レベル番号とデータ項目の名前
    • (2c) COPY文の、"COPY"と原文名または原文名定数
    • (2d) PICTURE句中のPIC、PICTUREまたはISと、PICTURE句の文字列
    • (2e) 見出し部の見出しのIDENTIFICATIONとDIVISION、または、プログラムの終わり見出しのENDとPROGRAM
    • (2f) 構成節の見出しのCONFIGURATIONとSECTION、または、入出力節の見出しのINPUT-OUTPUTとSECTION
    • (2g) ファイル節の見出しのFILEとSECTION
    • (2h) 手続き部の見出しのPROCEDUREとDIVISION
    • (2i) 索引ファイルの分割キー(*2)の名前と"="
  3. 2.の最初の語の直後の文字が次のどれかの分離符である場合。
    • 空白
    • コンマ
    • セミコロン

*1: 2つの語の並びを複数の行に渡って記述する例を以下に示します。

例) 見出し部の見出し(IDENTIFICATION DIVISION)のプログラム例

000010 IDENDIFICATION
000020  DIVISION.
000030 PROGRAM-ID. A.

*2: 他社COBOLでは、索引ファイルのRECORD KEY句またはALTERNATE RECORD KEY句で、キー項目の並びに分割キーと呼ばれる名前を宣言することができます。翻訳前ソース変換機能では、この分割キーの記述を変換する仕様です。


【補足】

現象は、条件 2.に応じて次のとおりとなります。

  • (2a)の場合
    [現象2](条件を満たすALL定数と日本語項目または日本語編集項目との比較を、次のどれかの場所に記述した場合に限り、現象が発生します。)
    • IF文
    • EVALUATE文の選択対象
    • PERFORM文のUNTIL指定
    • SEARCH文のWHEN指定
  • (2b)の場合
    条件を満たすデータ項目が次の条件を満たす場合、それぞれ現象が発生します。
    • 翻訳前ソース変換機能における変換対象となるデータ項目である場合: [現象2]
    • ASSIGN句のDYNAMIC指定で指定したデータ項目である場合: [現象4]
    • ASSIGN句のEXTERNAL指定で指定したファイル識別名と同名のデータ項目である場合: [現象5]
  • (2c)の場合: [現象1]
  • (2d)の場合: [現象2]または[現象3] (条件を満たすPICTURE句を指定したデータ項目が翻訳前ソース変換機能の変換対象である場合に限り、現象が発生します。)
  • (2e)の場合
    条件を満たす記述が次の条件を満たす場合、それぞれ現象が発生します。
    • 一番外側のプログラムに対する見出し部の見出しである場合: [現象3]
    • 同一の翻訳単位内に、複数のプログラムが宣言されている、かつ、次のどれかの条件を満たす場合、それぞれ現象が発生します。
      • ASSIGN句のDYNAMIC指定のデータ名と同名のデータ項目が、他のプログラムに宣言されている場合: [現象2]
      • ASSIGN句のEXTERNAL指定のファイル識別名と同名のデータ項目が、他のプログラムに宣言されている場合: [現象1]
      • 異なるプログラムに、異なるASSIGN句のファイルで重複した名前を指定している場合: [現象1]
      • 同一の翻訳単位内に、同じ名前のデータ項目が複数宣言されている場合: [現象5]
  • (2f)の場合: [現象2]
  • (2g)の場合: [現象4]
  • (2h)の場合: [現象5](ASSIGN句のEXTERNAL指定のファイル識別名と同名のデータ項目が宣言されている場合、変換を中止する仕様ですが、条件を満たす場合、変換を続行し、現象が発生します。)
  • (2i)の場合: [現象2]
14 V12.1.0 V12.2.0 PH17160

以下の条件の場合、翻訳前ソース変換機能を使用したCOBOLプログラムの変換時、不正な変換を行い、後続の翻訳処理で次の翻訳エラーが発生します。

JMN3242I-S 日本語定数とFUNCTION CAST-ALPHANUMERIC(英数字)との比較は,許されない組合せの比較です.

[条件]

  1. 次のどれかの方法により、翻訳前ソース変換機能を使用している。かつ、
    • cobolコマンドに-CVmオプションを指定して翻訳している
    • NetCOBOL Studioで翻訳オプションPRECONV(MF)を指定して翻訳している
    • cobpreconvコマンドを使用して変換している
  2. 条件式を次のどれかに記述している。かつ、
    • IF文
    • EVALUATE文の選択対象
    • PERFORM文のUNTIL指定
    • SEARCH文のWHEN指定
  3. 2.の条件式の左辺に日本語定数を記述している。かつ、
  4. 3.の日本語定数の直前が左括弧である。かつ、
  5. 3.と4.の間に分離符の空白が存在しない。かつ、
  6. 2.の条件式の右辺に日本語項目または日本語編集項目を記述している場合。
15 V10.1.0~V12.1.0 V12.2.0 PH17172

以下の条件の場合、リモート開発で用いるアカウントにファイルへのアクセス権があっても、そのファイルへのアクセス権がないという理由でリモートビルドが失敗することがあります。

失敗時のエラーメッセージは、そのファイルがビルドのどの場面で参照されたかによって異なります。

[条件]

  1. Linux環境上でLinux(64)版のNetCOBOLリモート開発サービスが開始されている。かつ、
  2. Windows環境上のNetCOBOL Studioから1.のNetCOBOLリモート開発サービスを対象にリモート開発を行う。かつ、
  3. NetCOBOLリモート開発で用いるLinux環境上のアカウントに補助グループが設定されている。かつ、
  4. NetCOBOLリモート開発でリモートビルド時に参照するファイルのアクセス権が以下の条件を満たす。かつ、
    1. 3.のアカウントがそのファイルに対するユーザーアクセス権限を持たない。かつ、
    2. 3.のアカウントの補助グループがそのファイルに対するグループアクセス権限を有する。かつ、
    3. そのファイルに対してその他ユーザーに対するアクセスが許可されていない。
  5. Windows環境上のNetCOBOL Studioから3.のアカウントを使用してLinux環境上のNetCOBOLリモート開発サービスを対象に以下の操作を行う。

    [プロジェクト] > [リモート開発]メニューに含まれる以下のどちらかのサブメニューを実行する。

    • [ビルド]または、
    • [再ビルド]
16 V10.1.0~V12.1.0 V12.2.0 PH17173

以下の条件の場合、NetCOBOLリモート開発サービスが長時間応答しないことがあります。

応答までの時間はサーバの状態によって異なります。

いったん応答があれば、その後NetCOBOLリモート開発サーバは問題なく動作します。

[条件]

  1. Linux環境上でLinux(64)版のNetCOBOLリモート開発サービスが開始されている。かつ、
  2. 1.のNetCOBOLリモート開発サービスへ接続する(*)。かつ、
  3. NetCOBOLリモート開発サービスが開始された後の初回の接続である。かつ、
  4. OSのエントロピープールに十分なエントロピー(64バイト以上)が蓄積されていない場合。

蓄積されているエントロピー量は、NetCOBOLリモート開発サービスを稼働させているLinux環境上で、以下のコマンドを実行することで求めることができます。

cat /proc/sys/kernel/random/entropy_avail

NetCOBOLリモート開発サービスが稼働しているLinux環境がVMなどの仮想環境である場合に現象が発生しやすくなる可能性があります。

*: NetCOBOLリモート開発サービスへ接続する具体例としては、以下があります。

Windows環境上のNetCOBOL Studioから1.のNetCOBOLリモート開発サービスに対して以下のどちらかの操作を行う場合。

  • [サーバー情報の変更]ダイアログから[接続確認]を行う。
  • [プロジェクト] > [リモート開発]メニューに含まれる以下のどれかのサブメニューを実行する。
    • [ビルド]
    • [再ビルド]
    • [メイクファイル生成]
17 V12.1.0 V12.2.0 PH17188

以下の条件の場合、翻訳前ソース変換機能を使用したCOBOLプログラムの変換時、次のどれかの事象が発生する場合があります。

[現象1] 次のどちらかの変換エラーが出力される

PRCV-ER126S 異なるASSIGN句のファイルに対し重複した名前が記述されています.変換を中止します.

PRCV-ER127S ファイル識別名と同名のデータ項目が宣言されています.変換を中止します.

[現象2] 変換対象の記述に対して変換が行われず、後続の翻訳処理で翻訳エラーが出力される

[現象3] 変換対象ではない記述に対して変換を行い、後続の翻訳処理で翻訳エラーが出力される

[現象4] 変換対象ではない記述に対して変換を行い、変換後のCOBOLプログラムの実行結果に誤りがある


[条件]

  1. 次のどれかの方法により、翻訳前ソース変換機能を使用している。かつ、
    • cobolコマンドに-CVmオプションを指定して翻訳している
    • NetCOBOL Studioで翻訳オプションPRECONV(MF)を指定して翻訳している
    • cobpreconvコマンドを使用して変換している
  2. [X]または[Y]のどちらかの条件を満たす場合。

    [X]

    • (X1) 内部プログラムを記述したプログラムが存在する。かつ、
    • (X2) (X1)にGLOBAL句を指定したファイル記述項を宣言している。かつ、
    • (X3) (X2)のファイル記述項に続く、レベル番号が01のデータ記述項にGLOBAL句を指定していない。かつ、
    • (X4) (X1)に直接または間接に含まれるプログラムにおいて、次のどちらかの記述がある場合。
      • (X4-a) (X3)またはこれに従属するデータ項目と同じ名前をASSIGN句のEXTERNAL指定のファイル識別名に記述している。
      • (X4-b) (X3)またはこれに従属するデータ項目を次のどちらかに記述している。

        - (X4-b-1) ASSIGN句のDYNAMIC指定のデータ名

        - (X4-b-2) 翻訳前ソース変換機能が変換対象とする比較および転記の作用対象(*1)

    [Y]

    • (Y1) 2つ以上の内部プログラムを記述したプログラム[A]が存在する。かつ、
    • (Y2) プログラム[A]に直接または間接に含まれるプログラム[B]に、GLOBAL句を指定したデータ項目が存在する。かつ、
    • (Y3) プログラム[B]の後方にあり、プログラム[A]に間接に含まれるプログラム[C]が存在する。かつ、
    • (Y4) プログラム[C]は、プログラム[B]に含まれない。かつ、
    • (Y5) プログラム[C]の階層(*2)が、プログラム[B]よりも大きい。かつ、
    • (Y6) 次のどちらかの条件を満たす場合。
      • (Y6-a) プログラム[C]において、(Y2)またはこれに従属するデータ項目と同じ名前を、ASSIGN句のEXTERNAL指定のファイル識別名に記述している。
      • (Y6-b) 次の条件を満たす、(Y2)またはこれに従属するデータ項目と同名のデータ項目が存在する。

        - (Y6-b-1) プログラム[A]、または、これを直接または間接に含むプログラムにおいて、GLOBAL句を指定して宣言されている。かつ、

        - (Y6-b-2) プログラム[C]において、次のどちらかの場所に記述されている。

        ・ (Y6-b-2-1) ASSIGN句のDYNAMIC指定のデータ名

        ・ (Y6-b-2-2) 翻訳前ソース変換機能が変換対象とする比較および転記の作用対象(*1)


*1: 翻訳前ソース変換機能では、次の場所に記述された比較および転記を変換対象とします。

  • 次のどれかに記述した条件式
    • IF文
    • EVALUATE文の選択対象
    • PERFORM文のUNTIL指定
    • SEARCH文のWHEN指定
  • MOVE文

*2: プログラムの階層とは、一番外側のプログラムを1とした場合、これに直接含まれるプログラムを2、さらにこれに直接含まれるプログラムを3、としてカウントした数字を指します。

▼階層:1
┌───────────────────────
│プログラム[A]
│ 01 DATA01 PIC X IS GLOBAL.
│▼階層:2
│┌────────────────────
││プログラム[B]
││01 DATA01 PIC 9 COMP-5 IS GLOBAL.
│└────────────────────
│▼階層:2
│┌────────────────────
││▼階層:3
││┌───────────────────
│││プログラム[C]
│││
│││  IF DATA01 = "A"
│││  THEN
│││

【補足】

条件ごとに、次の現象となります。

  • 条件(X4-a)の場合 : [現象3]
  • 条件(X4-b-1)の場合: [現象4]
  • 条件(X4-b-2)の場合: [現象2]、[現象3]、または[現象4]
  • 条件(Y6-a)の場合 : [現象1]
  • 条件(Y6-b-2-1)の場合: [現象2]
  • 条件(Y6-b-2-2)の場合: [現象3]または[現象4]
18 V12.1.0 V12.2.0 PH17191

以下の条件の場合、ダンプ情報の翻訳オプション一覧にCODECHKが表示されません。

[条件]

  1. 翻訳オプションCODECHKまたはNOCODECHKを明にまたは暗に指定(*)して翻訳している。かつ、
  2. 以下のどちらかの場合。
    1. 1.で生成したオブジェクトファイルをcobdumpコマンドでダンプ出力した場合。または
    2. 1.で生成したオブジェクトファイルから生成した実行可能ファイルに対してcobdumpコマンドでダンプ出力した場合。

*: 何も指定しない場合、CODECHKが有効になります。


例)

[コマンド]

$ cobol -c -WC,CODECHK A.cob
$ cobdump A.o

[ダンプ情報]

     A.o REL (Relocatable file)
     コンパイラバージョン : V12.1.0
     制御レベル : 0101
     LANG : ja_JP.UTF-8
     翻訳日時 : 20xx/xx/xx xx:xx:xx.xx
     確定翻訳オプション :
           ALPHAL(ALL)
           ARITHMETIC(18)
           ASCOMP5(NONE)
           BINARY(WORD, MLBON)
           CONVCHAR(ICONV)
                               ←★CODECHKがない
         NOCHECK
         NOCONF
19 V12.1.0 V12.2.0 PH17766

以下の条件の場合、翻訳前ソース変換機能を使用したCOBOLプログラムの変換時、他社COBOL固有の文法で記述されたCOPY文により取り込まれた登録集原文が誤った位置に展開されます。その結果、変換後のCOBOLプログラムの実行時に実行結果に誤りがある場合があります。

[条件]

  1. 次のどれかの方法により、翻訳前ソース変換機能を使用した変換を行っている。かつ、
    • (1-1) COBOLコマンドに-CVmオプションを指定して翻訳している
    • (1-2) NetCOBOL Studioで翻訳オプションPRECONV(MF)を指定して翻訳している
    • (1-3) COBPRECONVコマンドを使用して変換している
  2. 次のどちらかにより、COPY文により取り込まれた登録集原文を変換後ソースプログラム中に展開する指定が有効となっている。かつ、
    • (1-1)または(1-2)で変換している
    • (1-3)で変換している、かつ、変換オプションEXPAND-COPYにYESを指定している
  3. 変換元ソースプログラムまたは変換元登録集ファイルに次の記述(*)がある場合。
    • (3-1) REPLACING指定のあるCOPY文を記述している。かつ、
    • (3-2) (3-1)で取り込まれる登録集原文の中にCOPY文を記述している場合。

*: 条件 3.を満たす記述は他社COBOL固有の文法であり、翻訳前ソース変換機能を使用しないNetCOBOLの翻訳では、次の翻訳メッセージが出力されます。

JMN1074I-S REPLACING指定またはJOINING指定を記述したCOPY文により複写する登録集原文中にCOPY文を指定することはできません.

(プログラム例)

[変換前]

変換元ソースプログラム: A.cob

┌───────────────────────
│001001     DISPLAY "A START".
│001002     COPY B REPLACING DATA01 BY DATA02.
│001003     DISPLAY "A END".
└───────────────────────

(3-1)のCOPY文で取り込まれる登録集ファイル: B.cbl

┌───────────────────────
│002001     DISPLAY "B START".
│002002     DISPLAY DATA01.
│002003     COPY C.
│002004     DISPLAY "B END".
└───────────────────────

(3-2)のCOPY文で取り込まれる登録集ファイル: C.cbl

┌───────────────────────
│003001     DISPLAY "C START".
│003002     DISPLAY DATA01.
│003003     DISPLAY "C END".
└───────────────────────

[誤った変換結果]

変換後ソースプログラム: A.cob

┌───────────────────────
│001001     DISPLAY "A START".
│001002     COPY B REPLACING DATA01 BY DATA02. 
│003001     DISPLAY "C START".
│003002     DISPLAY DATA01.
│003003     DISPLAY "C END".
│001003     DISPLAY "A END".
└───────────────────────

変換後登録集ファイル: B.cbl

┌───────────────────────
│002001     DISPLAY "B START".
│002002     DISPLAY DATA01.
│002003*    COPY C.
│002004     DISPLAY "B END".
└───────────────────────

[プログラムの実行結果]

───────┬───────
移行前        │移行後
───────┼───────
A START       │A START
B START       │B START
(DATA02の値)  │(DATA02の値)
C START       │B END
(DATA02の値)  │C START
C END         │(DATA01の値)
B END         │C END
A END         │A END
───────┴───────

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

V12.1.0

ここに記載している情報は、V12.1.0で修正されている旧版で発生した障害一覧です。

項番 発生V/L 修正V/L P番号 現象
1 V10.1.0~V12.0.0 V12.1.0 PH13959

以下の条件の場合、COBOLプログラムの翻訳時に、コンパイラが無限ループをして翻訳が完了しないことがあります(*1)。

*1: 無限ループが発生しない場合、翻訳処理の結果は正しいです。

[条件1]

  1. IF文の入れ子の階層(*2)が180以上(*3)ある。かつ、
  2. 1.の180番目以降のIF文にCOBOLの文を記述している場合。

または、

[条件2]

  1. そとPERFORM文と節と段落が合わせて274以上(*3)ある。かつ、
  2. 1.の274番目以降の節または段落にCOBOLの文を記述している場合。

*2: IF文の入れ子の例。この例では入れ子の階層は2です。

      IF ~                   ---------+
        IF ~                 --+      |
          ~                    |      |
                    階層2   階層1
          ~                    |      |
        END-IF                --+      |
      END-IF                 ----------+

*3: 翻訳時のメモリの状態に依存するため、条件に一致しても無限ループしないことがあります。

2 V11.0.0~V12.0.0 V12.1.0 PH13961

以下の条件の場合、COBOLプログラムの翻訳時に、コンパイラが次のメッセージを出力して異常終了する場合があります。

JMN0102I-U 翻訳処理が続行不可能となりました.他の診断メッセージが表示されている場合は,それらを修正して,再度翻訳してみて下さい. (区名=JMNRAL,モジュール名=SABEMAC ,詳細コード=6202,行情報=nnnn.)

  1. 翻訳オプションOPTIMIZE(*1)が有効である。かつ、
  2. 翻訳オプションARITHMETIC(31)(*2)が有効である。かつ、
  3. 整数部1桁の2進項目を宣言している。かつ、
  4. 3.の数字項目に数字定数を転記している。かつ、
  5. 以下A、Bのどちらかに該当する算術文が存在する。かつ、
    A.以下の条件を満足する加減算
    • 作用対象が3.の数字項目。
    • 他方の作用対象の小数部桁が37桁以上の中間結果(*3)。
    B.以下の条件を満足する除算
    • 被序数が3.の数字項目。
    • 除数と商を受け取る数字項目の小数部桁が合わせて37桁。
  6. 4.と5.の文の間に下記の記述がない場合。
    • 段落
    • 下記の文
      • ON EXCEPTION指定またはNOT ON EXCEPTION指定付きのACCEPT文
      • ON SIZE ERROR指定またはNOT ON SIZE ERROR指定付きのADD文
      • ON SIZE ERROR指定またはNOT ON SIZE ERROR指定付きのCOMPUTE文
      • INVALID KEY指定またはNOT INVALID KEY指定付きのDELETE文
      • ON EXCEPTION指定またはNOT ON EXCEPTION指定付きのDISPLAY文
      • ON SIZE ERROR指定またはNOT ON SIZE ERROR指定付きのDIVIDE文
      • CALL文
      • EVALUATE文
      • EXIT文、EXIT PROGRAM文、EXIT METHOD文
      • GO TO文
      • IF文
      • INSPECT文
      • INVOKE文
      • MERGE文
      • ON SIZE ERROR指定またはNOT ON SIZE ERROR指定付きのMULTIPLY文
      • PERFORM文
      • AT END指定、NOT AT END指定、INVALID KEY指定またはNOT INVALID KEY指定付きのREAD文
      • RETURN文
      • INVALID KEY指定またはNOT INVALID KEY指定付きのREWRITE文
      • SEARCH文
      • SORT文
      • INVALID KEY指定またはNOT INVALID KEY指定付きのSTART文
      • STRING文
      • UNSTRING文
      • INVALID KEY指定、NOT INVALID KEY指定、END-OF-PAGE指定またはNOT END-OF-PAGE付きのWRITE文

*1:翻訳オプションOPTIMIZEのデフォルト値はOPTIMIZEです。

*2:翻訳オプションARITHMETICのデフォルト値はARITHMETIC(18)です。

*3:中間結果については、COBOL文法書の“付録D 中間結果”を参照してください。

3 V10.1.0~V12.0.0 V12.1.0 PH14815

以下の条件の場合、COBOLアプリケーションの実行時に、正しく動作しないことがあります。

  1. 翻訳オプションINITVALUEに00以外を指定している。かつ、
  2. ファクトリデータおよびオブジェクトデータのうち作業場所節に初期値を持たないデータ項目を定義している。かつ、
  3. 2.のデータ項目に値を設定せずに参照した場合。
4 V11.1.0~V12.0.0 V12.1.0 PH15447

以下の条件の場合、COBOLプログラムの翻訳時に、コンパイラが異常終了することがあります。(*1)

*1:本障害は翻訳時のメモリの状態に依存します。そのため、発生条件に一致していても異常終了するケースは稀です。異常終了しない場合、正しい目的プログラムが作成されます。

[条件]

  1. 翻訳オプションPLTが有効(*2)な場合。

*2:翻訳オプションPLTのデフォルト値はPLTです。

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

V12.0.0

ここに記載している情報は、V12.0.0で修正されている旧版で発生した障害一覧です。

項番 発生V/L 修正V/L P番号 現象
1 V10.1.0~V11.0.1 V12.0.0 PH08505

以下の条件の場合、コンパイラが異常終了する場合があります。このとき、特定のメッセージは出力されません。

以下の条件1、条件2のいずれかを満たす場合。

条件1)

  1. 以下の順序でREPLACE文を記述している。

    1. 書き方1のREPLACE文

    2. 書き方2のREPLACE文(REPLACE OFF)

    3. 書き方1のREPLACE文

    かつ、

  2. c.のREPLACE文の行に、別の文または注記を記述している場合。

    -例-

      REPLACE ==XXX== BY ==AAA==.
        :
      REPLACE OFF.
        :
      REPLACE ==XXX== BY ==BBB==. *> 注記
        :
    

条件2)

  1. 以下の順序でCOPY文およびREPLACE文を記述している。

    1. REPLACING指定またはDISJOINING/JOINING指定のあるCOPY文

    2. 書き方1のREPLACE文

    かつ、

  2. b.のREPLACE文の行に、別の文または注記を記述している場合。

    -例-

      COPY TEXT1 REPLACING ==XXX== BY ==AAA==.
        :
      REPLACE ==XXX== BY ==BBB==. *> 注記
        :
    
2 V10.1.0~V11.0.1 V12.0.0 PH11312

以下の条件の場合、コンパイラが以下のメッセージを出力して、異常終了することがあります。

JMN0102I-U 翻訳処理が続行不可能となりました.他の診断メッセージが表示されている場合は,それらを修正して,再度翻訳してみて下さい.(区名=JMNCOU,モジュール名=SABEMAC ,詳細コード=6692,行情報=nnnn.)

  1. cobolコマンドの翻訳リストを格納するファイル名を指定するオプション -P を指定している。かつ、

  2. 翻訳オプション LIST を指定している。かつ、

  3. COBOLソースファイルおよび登録集ファイルのコード系がUTF-8である(*1)。かつ、

  4. 手続き名、節名、段落名に63バイトを超える名前を記述している場合。

*1: 翻訳オプションSCS(UTF8)がデフォルトです。

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

V11.1.0

ここに記載している情報は、V11.1.0で修正されている旧版で発生した障害一覧です。

項番 発生V/L 修正V/L P番号 現象
1 V10.1.0~V11.0.0 V11.1.0 PG81806

以下の条件の場合、翻訳時にコンパイラが異常終了することがあります。

  1. 次のいずれかの文を記述している。かつ、

    • CALL文

    • CANCEL文

    • INVOKE文

    • CSV-FORMATが指定されたSTRING文/UNSTRING文

  2. 1.の文が条件文の中に記述されている。かつ、

  3. 2.の条件文の階層(*1)が180以上である場合(*2)。

*1:階層とは、例えば次のような場合(階層が2)を表します。

        EVALUATE ~            ────┐
        WHEN ~                        │
          COMPUTE ~           ┐      │
              ON SIZE ERROR    │      │
                               │      │
            CALL  ~           階層2   階層1 
                               │      │
          END-COMPUTE          ┘      │
        END-EVALUATE           ────┘

*2:翻訳時のメモリの状態に依存するため、条件に一致しても異常終了しないことがあります。

2 V10.1.0~V11.0.0 V11.1.0 PH03685

以下の条件の場合、32bit版コンパイラで翻訳したときと64bit版コンパイラで翻訳したときで、CANCEL文の実行時に削除されるメモリサイズが異なります。

  1. 翻訳オプションTHREAD(SINGLE)が有効である(*1)。かつ、

  2. 副プログラムの共用オブジェクトファイル(lib~.so)を以下のいずれかの方法で作成している。かつ、

    • 別の副プログラムを静的に(単純構造で)結合している(*2)。または、

    • 別の副プログラムの共用オブジェクトファイルと動的リンク構造で結合している(*2)。

  3. 2.の副プログラムを以下のいずれかの方法(動的プログラム構造)で呼び出している。かつ、

    • 翻訳オプションDLOADを指定したプログラムから呼び出している。または、

    • データ名を指定したCALL文で呼び出している。

  4. 2.の副プログラムに対するCANCEL文を実行した場合。

*1:省略値はTHREAD(SINGLE)です。

*2:単純構造、動的リンク構造および動的プログラム構造については、「NetCOBOLユーザーズガイド」の「3.4 実行可能プログラムの構造」を参照してください。

3 V11.0.0 V11.1.0 PH03777

以下の条件の場合、COBOLプログラム翻訳時に異常終了することがあります。

  1. 以下のいずれかの項目を定義している。かつ、

    • 英数字編集項目

    • 日本語編集項目

  2. 1.の項目のPICTURE句の文字列を46文字以上(*1)記述している。かつ、

  3. 1.の項目を以下のいずれかの転記の受け取り側に指定している場合。

    • MOVE文

    • 暗黙のMOVE文が実行される文

*1:ここではPICTURE句に記述された文字の数を意味します。

例)下記2つはどちらも同じ形式ですが、文字の数は異なります。

  PIC  XBXXXXXXXX => 10文字
  PIC  XBX(8)     =>  6文字
4 V11.0.0 V11.1.0 PH04215

以下の条件の場合、COBOLプログラム実行時、INVOKE文またはメソッドの行内呼出しのパラメタの受け渡しが正しく行われず、実行結果が正しくない場合があります(*1)。

*1:パラメタが文字化け、または、途中で切れます。

  1. 実行時コード系がUnicodeである。かつ、

  2. 以下のいずれかに日本語項目または日本語文字定数を指定している。かつ、

    • INVOKE文USINGパラメタ、RETURNINGパラメタ

    • メソッドの行内呼び出しのパラメタ

  3. 2.から呼び出されるメソッドの仮パラメタにANY LENGTH句を指定した日本語項目を定義している。かつ、

  4. 以下のいずれかである場合。

    • 2.に日本語項目を指定している。かつ、
      2.のパラメタのエンコード方式と、3.のパラメタのエンコード方式が異なる場合。(*2)

    • 2.に日本語文字定数を指定している。かつ、
      3.の日本語項目のエンコード方式がUTF32の場合。

*2:パラメタのエンコード方式が異なる呼び出しは誤った書き方をしているにもかかわらず、翻訳エラーになりません。

5 V10.2.0~V11.0.0 V11.1.0 PH04233

以下の条件の場合、COBOLプログラムの翻訳時に以下の翻訳エラーメッセージが出力され、コンパイラが異常終了します。

  • V10.5以前

    システムエラー'errno=0xXXX'が'open REP,xxx'で発生しました.
    ** 診断メッセージ ** (xxx)
    xxx.cob 0: JMN0013I-S リポジトリファイルがオープンできません.出力された目的プログラムファイルは使用できません.

  • V11.0以降

    システムエラー'errno=0xXXX'が'iconv : error code=7, code no=2 from=sjisms to=utf8_4_ms'で発生しました.
    ** 診断メッセージ ** (xxx)
    xxx.cob 0: JMN0124I-U ソースファイル内に不当な文字があります.(区名=xxxxxx,行情報=xx.)翻訳を中止します.

  1. COBOLソースファイルおよび登録集ファイルのコード系がシフトJISである。かつ、

  2. 以下のいずれかの文字定数が半角カナを含む。かつ、

    • クラス名段落のAS指定の定数

    • 原文名定数(*)

  3. 2.の定数がUTF-8表現で以下の長さを超える場合。

    • クラス名段落のAS指定の定数の場合、320byte

    • 原文名定数の場合、240byte(*)

*:V10.5以前の場合、発生条件に該当しません。

6 V11.0.0 V11.1.0 PH04570

以下の条件のとき、COBOLプログラムの翻訳時、以下に示すいずれかの現象が発生する場合があります。

  • 現象1

    誤った構文に対し以下の翻訳エラーメッセージが出力されず、翻訳が正常終了(*1)します。

    JMN2038I-S VALUE句の定数の長さは,項目の長さ以下でなければなりません.項目長に合わせ,定数の右端を切り落とします.

    *1:作成された目的プログラム中のデータ項目は項目長に合わせて定数の右端を切り落とした定数値が設定された状態で動作します。

  • 現象2

    正しい構文に対し以下の翻訳エラーメッセージが出力され、翻訳に失敗します。

    JMN2106I-S 条件名のVALUE句のTHROUGHの後の値は,THROUGHの前の値より大きくなければなりません.

  1. 以下のいずれかのエンコードの日本語項目または日本語編集項目を記述している。かつ、

    • UTF32

    • UTF32LE

    • UTF32BE

  2. 1.のデータ項目または1.のデータ項目を条件変数とする条件名にVALUE句を指定している。かつ、

  3. 2.のVALUE句に以下のいずれかを満たす日本語定数(*2)を指定している。かつ、

    1. PICTURE句に指定した大きさを超えている

    2. THROUGH指定の前後に、大小順序の正しい2つの日本語定数を指定している

  4. 3.の日本語定数が41文字以上かつ80文字以下の場合。

*2: 日本語定数同士の連結式を含む。

[補足]

それぞれの現象は、以下の発生条件を満たす場合に発生します。

  • <現象1> 発生条件3.のa.

  • <現象2> 発生条件3.のb.

7 V10.1.0~V11.0.0 V11.1.0 PH05538

以下の条件1、条件2または条件3のいずれかを満たす場合、COBOLプログラムの実行時、基底場所節に宣言したデータ項目を使用する文で、異常終了(Segmentation Fault)または結果誤りが発生する場合があります。

  • 条件1

    1. 基底場所節に宣言したデータ項目を以下のいずれかの方法で使用している。かつ、

      1. 変数で添字付けしている。または、

      2. 最左端文字位置に変数を指定した部分参照をしている。

    2. 翻訳オプションOPTIMIZEが有効である場合。(省略値はOPTIMIZEです)

  • 条件2

    基底場所節に宣言したデータ項目を以下のいずれかの文に指定している場合。

    • INSPECT文

    • STRING文(中核)

    • UNSTRING文(中核)

  • 条件3

    1. 基底場所節にOCCURS句を指定したデータ項目を宣言している。かつ、

    2. 1.のデータ項目をINITIALIZE文に指定している場合。

8 V10.1.0~V11.0.0 V11.1.0 PH05861

以下の条件の場合、COBOLプログラムの実行時、部分参照した外部10進項目から数字編集項目または浮動小数点項目への転記において、送出し側を部分参照する範囲が1桁左にずれる誤りが発生します。

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

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

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

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

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

*2: TRAILING SEPARATE指定

9 V10.1.0~V11.0.0 V11.1.0 PH06489

以下の条件の場合、翻訳時にコンパイラが異常終了して翻訳を中止する場合があります。特定のメッセージはありません。

  1. 項目長が8の倍数の内部ブール項目を記述している。かつ、

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

  3. 1.の項目にVALUE句を指定している。かつ、

  4. 1.の項目が次のいずれかの条件を満たしている。かつ、

    1. 1.の項目のレベル番号が01または77である。または、

    2. 1.の項目の終端位置から1.の項目を含むレコードの終端位置までの長さ(*)が以下の長さより短い。

      • 1.の項目にOCCURS句を指定していない場合:1バイト

      • 1.の項目にOCCURS句を指定している場合:1バイト×繰り返し回数の最大値

  5. 1.の項目を次のいずれかの節に記述している場合。

    • プログラム定義の定数節

    • クラスのオブジェクト定義の作業場所節

    • クラスのオブジェクト定義の定数節

    • クラスのメソッド定義の定数節

    • プログラム定義の作業場所節

    • クラスのファクトリ定義の作業場所節

    • クラスのファクトリ定義の定数節

    • 分離されたメソッド定義の作業場所節

    • 分離されたメソッド定義の定数節

*: 終端位置は、レコード先頭からのオフセット+項目長が指す位置のことを表します。

1.の項目を含むレコード
  ┌──────────────┬─────┬─────┐
  │                            │1.の項目  │          │
  └──────────────┴─────┴─────┘
                                            ↑          ↑
                            1.の項目の終端位置          │
                                                        │
                          1.の項目を含むレコードの終端位置
10 V10.1.0~V11.0.0 V11.1.0 PH06787

以下の条件1または条件2のいずれかを満たす場合、COBOLプログラムの実行時、仮パラメタに正しく値を受渡しできない場合があります。

  • 条件1

    1. 次の何れかの呼出しを使用している。かつ、

      • INVOKE文によるメソッド呼出し

      • メソッドの行内呼出し

    2. 1.の呼出しで次の何れかのパラメタを指定している。かつ、

      • BY CONTENTを指定したパラメタ

      • 定数節のデータ項目

      • 文字定数

    3. 1.の呼出し先の仮パラメタにJUSTIFIED句を指定している。かつ、

    4. 2.のパラメタの長さと3.の仮パラメタの長さが異なる場合。

  • 条件2

    1. 次の何れかの呼出しを使用している。かつ、

      • INVOKE文によるメソッド呼出し

      • メソッドの行内呼出し

    2. 1.の呼出しで次の何れかのパラメタを指定している。かつ、

      • BY CONTENTを指定したパラメタ

      • 定数節のデータ項目

      • 文字定数

    3. 1.の呼出し先の仮パラメタにBLANK WHEN ZERO句を指定している。かつ、

    4. 2.のパラメタから3.の仮パラメタへの転記の結果がゼロとなる場合。

補足:

  • 仮パラメタは手続き部の見出しのUSING指定またはRETURNING指定に指定されたデータ項目を指します。

  • BY CONTENT指定のパラメタ受渡しでは仮パラメタへの転記が行われます。

    詳細については、COBOL文法書11.8.5.5.2を参照ください。

条件1の例)

[呼出し元] 
  <省略>
  WORKING-STORAGE SECTION.
  01 VAR PIC X(3).
  01 OBJ OBJECT REFERENCE CCC.
  PROCEDURE DIVISION.
       MOVE "ABC" TO VAR.
       INVOKE CCC "NEW" RETURNING OBJ.
       INVOKE OBJ "MMM" USING BY CONTENT VAR.
[呼出し先]
  CLASS-ID. CCC INHERITS FJBASE.
  <省略>
  METHOD-ID. MMM.
  DATA DIVISION.
  WORKING-STORAGE SECTION.
  LINKAGE SECTION.
  01 VAR PIC X JUSTIFIED.
  PROCEDURE DIVISION USING VAR.
       DISPLAY "VAR=" VAR.
  END METHOD MMM.
[実行結果]
  VAR=A    ←  正しくは"C"

条件2の例)

[呼出し元]
  <省略>
  WORKING-STORAGE SECTION.
  01 OBJ OBJECT REFERENCE CCC.
  01 RET-VAL PIC 9.
  PROCEDURE DIVISION.
       INVOKE CCC "NEW" RETURNING OBJ.
       MOVE OBJ::"MMM" ("000") TO RET-VAL.
  END PROGRAM PPP.
[呼出し先]
  CLASS-ID. CCC INHERITS FJBASE.
  <省略>
  METHOD-ID. MMM.
  DATA DIVISION.
  WORKING-STORAGE SECTION.
  LINKAGE SECTION.
  01 VAR PIC 9(3) BLANK WHEN ZERO.
  01 RET-VAL PIC 9.
  PROCEDURE DIVISION USING VAR RETURNING RET-VAL.
       DISPLAY "VAR=" VAR.
  END METHOD MMM.
[実行結果]
  VAR=000  ←  正しくは"   "
11 V10.1.0~V11.0.0 V11.1.0 PH08595

以下の条件の場合、翻訳オプションOPTIMIZEを指定すると、翻訳時にコンパイラが異常終了する場合があります。

  1. 翻訳オプションOPTIMIZE(*1)が有効である。かつ、

  2. 繰返し処理を記述している。かつ、

  3. 2.の繰返し処理に以下を記述している場合

    • 指標名

    • 部分参照

    • 添字付け項目

    • 乗算

*1:省略値はOPTIMIZEです。

本障害が発生した場合、必ず翻訳時にコンパイラが異常終了します。コンパイラが異常終了しない場合、正しいオブジェクトを生成します。

12 V10.1.0~V11.0.0 V11.1.0 PH10340

以下の条件の場合、COBOLプログラムが実行時メッセージ(JMP0024I-U)を出力して異常終了するとき、エラー事象と無関係の行番号が実行時メッセージに表示されます。

  1. デッドロック出口スケジュールサブルーチン(COB_DEADLOCK_EXIT)を呼び出すプログラムを記述している。かつ、

  2. 1.のプログラムまたは上位のプログラムにデッドロック出口を記述していない場合。

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

V11.0.0

ここに記載している情報は、V11.0.0で修正されている旧版で発生した障害一覧です。

項番 発生V/L 修正V/L P番号 現象

1

V10.1.0

V10.5.0A

V11.0.0

PG76651

以下の条件の場合、COBOLプログラム実行時に、長さの異なる日本語項目(日本語編集項目、組込み関数を含む)同士の大小比較の結果が正しくない問題を修正しました。

  1. 翻訳オプションRCS(UTF16,LE)またはRCS(UCS2,LE)が有効である(*1)。かつ、 (*1)翻訳オプションの省略値はRCS(UTF16,LE)です。
  2. 日本語項目と、日本語項目または日本語文字定数の大小比較である。かつ、
  3. 少なくとも一方が部分参照された項目またはANY LENGTH句の指定がある項目である。かつ、
  4. 比較対象の長さが異なる場合。

2

V10.1.0

V10.5.0A

V11.0.0

PG88107

以下の条件の場合、int型2進整数項目を使用したCOBOLプログラムの翻訳時に、コンパイラが以下のメッセージを出力して異常終了します。

「JMN0102I-U 翻訳処理が続行不可能となりました.他の診断メッセージが表示されている場合は,それらを修正して,再度翻訳してみて下さい.(区名=JMN300,モジュール名=SC30MKTT,詳細コード=3209,行情報=nnn.)」

以下のいずれかの文を記述している場合に発生します。

  • 小数部のみの数字項目をint型2進整数項目へ転記する文
  • 小数部のみの演算結果をint型2進整数項目へ受け取る算術文

3

V10.1.0

V10.5.0A

V11.0.0

PG88615

以下の条件の場合、COBOLプログラムの翻訳時に、COBOLコンパイラが不当なJMN1477I-Iのメッセージを出力する場合があります。

  1. 特殊名段落(SPECIAL-NAMES)を宣言している。かつ、
  2. 特殊名段落に重大コードSのコーディング誤りがある場合。

補足) メモリの状態に依存するため、発生条件を満たしても現象が発生しない場合があります。

4

V10.1.0

V10.5.0A

V11.0.0

PG88616

以下の[条件1]または[条件2]の場合、COBOLプログラムの翻訳時に、COBOLコンパイラが以下の例のような不当なメッセージを出力する場合があります。

例)

JMN1019I-W line-no 標識領域は'-','*','/','D'または空白でなければなりません.空白とみなします.

JMN1123I-S line-no 許されない語'nnn'が現れました.次の認識できる句,段落,節または部まで無効になります.

JMN1255I-S line-no 01レベル項目の指定なしに02~49レベル項目が指定されています.01レベル項目とみなします.

JMN1356I-W line-no 見出し部中に誤った語'nnn'が指定されています.次の段落または部まで無効になります.

line-no: 行番号

nnn : 数字

※ 上記のメッセージは一例です。他のメッセージの場合もあります。

[条件1]

  1. Oracle Pro*COBOLのprecobコマンドを使用して、埋込みSQL文を含むCOBOLプログラムをプリコンパイルしている。かつ、
  2. INSDBINFコマンドを使用して、1.のPro*COBOLプログラムからCOBOLプログラムを生成している。かつ、
  3. 翻訳オプション"NUMBER"を指定して、2.で生成したCOBOLプログラムを翻訳した場合。

または、

[条件2]

  1. Symfowareのsqlpcobコマンドにオプション"-g"を指定して、埋込みSQL文を含むCOBOLプログラムをプリコンパイルしている。かつ、
  2. 翻訳オプション"NUMBER"を指定して、1.で生成したCOBOLプログラムを翻訳した場合。

5

V10.1.0

V10.5.0A

V11.0.0

PG89665

以下の条件の場合、COBOLプログラムの翻訳時に、以下の不当な翻訳時メッセージが出力され、COBOLプログラムが翻訳できません。

「JMN2206I-S KEY IS句のデータ名'xxxxx'は,アドレス可変項目であってはなりません.」

  1. OCCURS句のKEY IS指定を記述している。かつ、
  2. 1.に指定したデータ名がレコードの中の可変位置にある場合。

6

V10.2.0

V10.5.0A

V11.0.0

PG94893

以下の条件の場合、「指定したデバッグプログラムが見つからないため、開始に失敗しました。」のメッセージが表示され、デバッガを正常起動できないことがあります。

  1. RHEL6.0以降のLinux(64)サーバに、下記に示す製品をインストールしている。かつ、
    • Linux(64) NetCOBOL シリーズ 開発・運用パッケージ
    • Linux(64) Interstage Job Workload Server(以降、IJOBと略します)
  2. クライアント(Windows)に下記に示す製品をインストールしている。かつ、
    • Windows(32) NetCOBOL シリーズ 開発パッケージ V10.3.0以降
    • NetCOBOL V10.3.0以降で提供されるInterstage Stduio 向けCOBOLプラグイン
    • Interstage Studio Standard-J Edition V10.0以降
  3. Interstage Studioにて、Linux(64)をサーバとするサーバ連携情報を設定している。かつ、
  4. サーバ上で、環境変数CBR_ATTACH_TOOLを設定し、Interstage Studioをクライアントとするアタッチデバッグが可能な設定にしている。かつ、
  5. 被デバッグアプリケーションとなるCOBOLアプリケーションを、3.で設定したリモートサーバをターゲットとして、デバッグモードでリモートビルドしている。かつ、
  6. 5.で作成したCOBOLアプリケーションを、IJOBのワークユニットに配備している。かつ、
  7. Interstage Studioで、アタッチデバッグによるリモートデバッガを起動し、サーバ側被デバッグアプリケーションからの接続待ち状態にしている。かつ、
  8. 6.で配備したワークユニットを起動し、5.で作成したCOBOLアプリケーションを呼び出す操作を実行した場合。

7

V10.1.0

V10.5.0A

V11.0.0

PG97116

以下の条件の場合、COBOLプログラムの翻訳時に、コンパイラが以下のメッセージを出力して異常終了します。

翻訳処理が続行不可能となりました.他の診断メッセージが表示されている場合は,それらを修正して,再度翻訳してみて下さい.(区名=JMNRAL,モジュール名=SABEMAC ,詳細コード=6202,行情報=nnn.)

  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:関数値が格納される一時的なデータ項目は以下の桁数となります。

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

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

8

V10.1.0

V10.5.0A

V11.0.0

PG98620

以下の条件の場合、COBOLプログラムの翻訳時に、コンパイラが翻訳メッセージを出力せずに異常終了する場合があります。

  1. 翻訳オプションOPTIMIZEが有効である(*1)。かつ、
  2. COBOLソースに、呼ばれるプログラムの名前を一意名で指定しているCALL文を記述している。かつ、
  3. 2.のCALL文にUSING指定を記述している。かつ、
  4. 2.のCALL文にRETURNING指定を記述している。かつ、
  5. ポインタデータ項目を設定、または参照している。かつ、
  6. 内部プログラムが存在する。かつ、
  7. 6.の手続き部の見出しにUSING指定を記述していない場合。

*1:翻訳オプションのデフォルト値は製品の動作OSにより異なります。

  • Solaris、Linuxの場合、デフォルトはOPTIMIZEです。
  • Windowsの場合、デフォルトはNOOPTIMIZEです。

9

V10.1.0

V10.5.0A

V11.0.0

PG98742

以下の条件の場合、COBOLプログラムの翻訳時にコンパイラが異常終了する、または、実行時に正しく動作しない場合があります。

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

  1. TYPE句を指定した項目を従属するレベル番号01の集団項目を定義している。かつ、
  2. 1.の集団項目にREDEFINES句を指定している。かつ、
  3. 1.のデータ項目の長さが2.で再定義されるデータ項目の長さより短い場合。

または

【ファイル節にデータ項目を宣言した場合】

  1. TYPE句を含むレコード記述項を定義している。かつ、
  2. 同じファイル記述項に1.のレコード記述項とは別のレコード記述項を定義している(*1)。 かつ、
  3. 1.のレコード記述項の長さが2.のレコード記述項の長さよりも短い場合。

*1: ファイル節で同じファイル記述項にレコード記述項を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

10

V10.1.0

V10.5.0A

V11.0.0

PG99190

以下の条件の場合、COBOLプログラムの翻訳時に、コンパイラが以下のメッセージを出力して異常終了する場合があります。

「JMN0124I-U ソースファイル内に不当な文字があります.(区名=JMNALO,行情報=0.)翻訳を中止します.」

  1. 翻訳オプションRCS(UTF16), ENCODE(UTF8,UTF16)またはENCODE(UTF8,UTF32)を指定している。かつ、
  2. 翻訳オプションCHECK(PRM),CHECK(ALL)またはSAIを指定している。かつ、
  3. ソースプログラムのコード系がSJISである。かつ、
  4. CALL文またはINVOKE文のUSING BY CONTENT指定に文字定数(日本語文字定数は除く)を指定している。かつ、
  5. 4.の文字定数が日本語文字を含む場合。

11

V10.1.0

V10.5.0A

V11.0.0

PH01579

以下の条件の場合、COBOLプログラム翻訳時、実行時に異常終了するオブジェクトプログラムを作成するにも関わらず、翻訳メッセージが出力されません。

  1. CALL文のUSING指定に節名または段落名を書いた場合。

12

V10.1.0

V10.5.0A

V11.0.0

PH01893

以下の条件の場合、cobdependコマンドの実行時に異常終了する場合があります。

  1. パスの長さが4096バイトを超えるファイルを使用する。かつ、

[条件1]

  1. COBOLOPTS環境変数またはcobdependコマンドの引数によって、-do翻訳オプションでディレクトリを指定している。かつ、
  2. 文字列の長さが次の条件を満足する場合。
    • 指定したディレクトリ名の最後の文字が"/"、かつ次の文字列の長さが4100バイトの場合。
      ディレクトリ名 + COBOLソースファイルの拡張子を除いたファイル名
    • 指定したディレクトリ名の最後の文字が"/"以外、かつ次の文字列の長さが4099バイトまたは4100バイトの場合。
      ディレクトリ名 + "/" + COBOLソースファイルの拡張子を除いたファイル名

または、

[条件2]

  1. COBOLOPTS環境変数またはcobdependコマンドの引数によって、次のいずれかの翻訳オプションでディレクトリを指定している。かつ、
    -R
    -dr
  2. COBOLソースファイルにクラス名段落またはリポジトリ段落を記述している。かつ、
  3. 次のいずれかの文字列の長さが4092バイトを超える場合。
    - ディレクトリ名(※1) + クラス名段落(CLASS-ID)のクラス名
    - ディレクトリ名(※1) + リポジトリ段落のクラス指定子

または、

[条件3]

  1. COBOLOPTS環境変数またはcobdependコマンドの引数によって、-m翻訳オプションでディレクトリを指定している。かつ、
  2. COPY文で登録集原文にXMDLIBを指定している。かつ、
  3. 次の文字列の長さが4096バイトを超える場合。
    ディレクトリ名(※1) + COPY文の原文名 + 画面帳票定義体の拡張子(※2)

または、

[条件4]

  1. COBOLOPTS環境変数またはcobdependコマンドの引数によって、-f翻訳オプションでディレクトリを指定している。かつ、
  2. COPY文で登録集原文にXFDLIBを指定している。かつ、
  3. 次の文字列の長さが4096バイトを超える場合。
    ディレクトリ名(※1) + COPY文の原文名 + ファイル定義体の拡張子(※3)

または、

[条件5]

  1. COBOLOPTS環境変数またはcobdependコマンドの引数によって、-I翻訳オプションでディレクトリを指定している。かつ、
  2. COPY文で原文名または原文名定数を指定している。かつ
  3. 次の文字列の長さが4096バイトを超える場合。
    - ディレクトリ名(※1) + COPY文の原文名 + 登録集の拡張子(※4)
    - ディレクトリ名(※1) + COPY文の原文名定数

または、

[条件6]

  1. cobdependコマンドの引数に-Xnocallが指定されていない。かつ、
  2. 次のファイルが存在していない。かつ、
  3. CALL文で指定するプログラム名 + 次の拡張子の何れかである。かつ、
    - .cbl
    - .cob
    - .cobol
  4. COBOLOPTS環境変数またはcobdependコマンドの引数によって、-do翻訳オプションでディレクトリを指定している。かつ、
  5. 次の文字列の長さが4094バイトを超える場合。 ディレクトリ名(※1) + CALL文で指定するプログラム名

※1 オプションに指定したディレクトリ名の最後の文字が"/"でない場合は"/"を付加した ディレクトリ名になります。

※2 環境変数SMED_SUFFIXに"None"以外が指定されている場合はSMED_SUFFIXの設定値、それ以外は次の拡張子になります。

- .pmd

- .pxd

- .smd

※3 環境変数FFD_SUFFIXに"None"以外が指定されている場合はFFD_SUFFIXの設定値、それ 以外は次の拡張子になります。

- .ffd

※4 環境変数COB_LIBSUFFIXに"None"以外が指定されている場合はCOB_LIBSUFFIXの設定値、それ以外は次の拡張子になります。

- .cbl

- .cob

- .cobol

13

V10.1.0

V10.5.0A

V11.0.0

PH02032

以下の条件の場合、COBOLプログラムの翻訳時に、コンパイラが正しい定数の継続に対して以下の翻訳時メッセージを出力する場合があります。

「JMN1022I-S 定数の終わりの引用符がありません.B領域の終わりまでを定数とみなします.」

「JMN1021I-S 定数の継続において,後の行は,標識領域にハイフンを書き,引用符で始めなければなりません.定数が継続されているものとみなします.」

  1. REPLACE文を記述している。かつ、
  2. 1.のREPLACE文による置き換えが行われる範囲(*1)に以下の記述がある場合。
    a) COPY文を記述している。かつ、
    b)a)のCOPY文の前(*2)がピリオド、右括弧、左括弧、コロンのいずれでもない。かつ、
    c)a)のCOPY文より後ろに複数の行に継続する定数(*3)を記述している。かつ、
    d) a)のCOPY文とc)の定数との間に複数の行に継続する文字列(*4)を記述していない。

*1:次のREPLACE文が現れるまで、または、翻訳単位の終わりまで

*2:空白、注釈行を除いた、直前の文字

*3:文字定数、16進文字定数、日本語定数、ブール定数

*4:日本語利用者語以外のCOBOLの語、PICTURE句の文字列

14

V10.1.0

V10.5.0A

V11.0.0

PH02168

以下の条件の場合、COBOLプログラムの翻訳時に、以下の不当な翻訳時メッセージが出力されます。

「JMN1479I-S 連結式が最大長を超えています.最大長までを連結します.」

また、上のメッセージに加えて、以下のメッセージも出力される場合があります。

「JMN0124I-U ソースファイル内に不当な文字があります.(区名=JMNxxx,行情報=nn.) 翻訳を中止します.」

  1. COBOLソースのコード系がUTF-8である。かつ、
  2. 日本語文字定数(*1)同士の連結式が記述されている。かつ、
  3. 2.で連結された文字数が54~80文字の場合。

(*1) 記号定数や名前付き定数を含む。

15

V10.1.0

V10.5.0A

V11.0.0

PH02265

以下の条件の場合、翻訳時エラーにならない場合がある問題を修正しました。

  1. プログラム、クラスまたはメソッドの外部名に連結式を記述している。かつ、
  2. 連結式の先頭に以下のいずれかを記述している。かつ、
    • 文字定数
    • 日本語文字定数
  3. 連結式中に以下のいずれかを記述している場合。
    • 16進文字定数
    • 日本語16進文字定数

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

V10.5.0

ここに記載している情報は、V10.5.0で修正されている旧版で発生した障害一覧です。

項番 発生V/L 修正V/L P番号 現象
1 V10.1.0~V10.3.0 V10.5.0 PG88850 以下の条件の場合、COBOLプログラム実行時にプログラムが異常終了する、または、比較・演算・転記の結果が正しくない場合があります。
  1. 翻訳オプションOPTIMIZEが有効である。かつ、
  2. 以下のデータ項目を宣言している。かつ、
    1. 以下のいずれかのレコード内のデータ項目である。
      • オブジェクト定義・ファクトリ定義のファイルのレコード
      • オブジェクト定義・ファクトリ定義の作業場所節内のレコード
    2. 以下のいずれかの属性である。かつ、
      • 18桁以下の2進項目
      • 指標データ項目
    3. OCCURS句の指定がない項目である。かつ、
    4. OCCURS句の指定がある集団項目に従属していない。かつ、
    5. レコード内の位置が、OCCURS DEPENDING ON句の指定がある項目の後でない。
  3. 手続き部で、2.のデータ項目と領域の重なりのあるデータ項目を使用していない。かつ、
  4. 手続き部で、2.の項目に値を設定している。
2 V10.1.0~V10.3.0 V10.5.0 PG92450 以下の条件の場合、翻訳オプションOPTIMIZEが有効なプログラムの実行時に、ゼロ抑制の数字編集転記において先行ゼロ列に不正な文字(ゼロ)が転記されることがあります。
  1. 翻訳オプションOPTIMIZE(注1)が有効である。かつ、
  2. 数字編集項目へ転記する文を記述している。かつ、
  3. 2.の文の位置から前方100行以内(注2)に、以下の記述がない。かつ、
    • 段落
    • 条件文
    • 手続き分岐文(注3)
  4. 2.の数字編集項目には、編集方法にゼロ抑制のみを指定している(PICTURE句の文字列に'9','Z','*'を組み合わせて使用している)場合。
(注1)翻訳オプションのデフォルト値はOPTIMIZEです。
(注2)注記行、空白行はカウントしません。本障害はコンパイラの内部条件に影響されるため、発生条件に一致しても正しく転記される場合があります。
(注3)次の実行文でない文に制御の明示的な移行を起こす文を指します。

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

V10.3.0

ここに記載している情報は、V10.3.0で修正されている旧版で発生した障害一覧です。

項番 発生V/L 修正V/L P番号 現象
1 V10.1.0~V10.2.0 V10.3.0 PG81352 以下の環境および発生条件を満たす場合、Windows側のNetCOBOL Studioまたは Interstage StudioからLinux(64)サーバに接続したとき、「サーバへの接続に失敗しました」 のメッセージが表示され、Linux(64)サーバに接続できません。
【環境】
Linux(64)システムにて、IPv6を無効にしている場合。
【発生条件】
  1. Linux(64)システムにて、enable-rds.shを実行してNetCOBOLリモート開発サービスを開始した。かつ、
  2. Windows側のNetCOBOL StudioまたはInterstage Studioから、1.のLinux(64)システムに接続しようとした場合。
2 V10.1.0~V10.2.0 V10.3.0 PG85632 以下の条件のとき、insdbinfが出力するCOBOLプログラムに誤りがあるため、NetCOBOLコンパイラが 翻訳時に異常終了する、または、コンパイラが出力する行番号が正しくないことがあります。
【環境】
Pro*COBOLを使用している。
【発生条件】
  1. Pro*COBOLを使用している。かつ、
  2. insdbinf を使用している。かつ、
  3. COBOLプログラム中に埋込みSQL文のINCLUDE文を使用している。かつ、
  4. インクルードするCOBOLプログラムの一連番号領域に行番号を設定している場合。
3 V10.1.0~V10.2.0 V10.3.0 PG85966 以下の条件のとき、誤ったデバッグ情報ファイルが出力され、正しくデバッグすることが できません。
【発生条件】
  1. 翻訳オプションTESTを指定してCOBOLプログラムを翻訳している。かつ、
  2. 原文名定数が指定されたCOPY文を記述している。かつ、
  3. 2.で取り込まれた登録集(注1)に原文名が指定されたCOPY文を記述している。かつ、
  4. コンパイラが異常終了した場合(注2)
(注1)登録集が入れ子になっている場合は、最後の階層に至るまでのいずれかの登録集
(注2)通常時のコンパイラが出力する翻訳時メッセージが出力されず、「0~3」以外の 復帰コードが返却されます。
4 V10.1.0~V10.2.0 V10.3.0 PG86728 COBOLプログラムの翻訳時に、コンパイラが以下の不当な翻訳時メッセージを出力して、 翻訳できなくなる場合があります。
「JMN5546I-S メソッド'mmmmm'のインタフェースは,再定義されるメソッドのインタフェースに 適合していなければなりません.メソッド'mmmmm'は無効になります.」
【発生条件】
  1. OVERRIDE指定のメソッド定義がある。かつ、
  2. 1.のメソッドと親クラスに定義された同名のメソッドのUSINGパラメタまたは RETURNINGパラメタが以下の場合
    1. メソッドのパラメタの一方が集団項目、もう一方は集団項目または英数字項目。かつ、
    2. パラメタのサイズが一致する。

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

V10.2.0

ここに記載している情報は、V10.2.0で修正されている旧版で発生した障害一覧です。

項番 発生V/L 修正V/L P番号 現象
1 V10.1.0 V10.2.0 PG73504 以下の条件の場合、行番号情報埋込みツール(insdbinf)使用時に、COBOLコンパイラが以下の 翻訳メッセージを出力して異常終了することがあります。
JMN1059I-U 登録集の処理のための主記憶が不足しています.
  1. Oracle Pro*COBOLを使用してPro*COBOLプログラムを翻訳している。かつ、
  2. 1.のPro*COBOLプログラムに以下の記述がある。かつ、
    1. INCLUDE文を指定している。かつ、
    2. a.のINCLUDE文の次の行がコメント行である。かつ、
    3. b.の次の行がコメント行でない。かつ、
    4. a.のINCLUDE文に指定しているINCLUDEファイル内に「END-EXEC」がある。かつ、
    5. b.の行数とd.のINCLUDEファイル内にある最後の「END-EXEC」の行数が同じである。
  3. insdbinfコマンドを使用して、2.のPro*COBOLプログラムからCOBOLプログラムを生成している。かつ、
  4. 3.で生成したCOBOLプログラムを翻訳した。
例:
  Pro*COBOLプログラム
  098行目:000098      EXEC SQL
  099行目:000099          INCLUDE INC01     *> 発生条件 2)-a
  100行目:000100      END-EXEC.
  101行目:000101*       コメント行            *> 発生条件 2)-b, 2)-e
  102行目:000102      EXEC SQL              *> 発生条件 2)-c

  INCLUDEファイル(ファイル名:INC01.cob)
  099行目:000099      EXEC SQL
  100行目:000100          END   DECLARE  SECTION
  101行目:000101      END-EXEC.             *> 発生条件 2)-d, 2)-e
2 V10.1.0 V10.2.0 PG73470 以下の条件の場合、翻訳時に誤った指摘メッセージが出力されます。(注1)
  1. 翻訳オプションFLAGSW(STDM)またはFLAGSW(STDI)を指定している。かつ、
  2. CALL文にUSING指定を記述している。かつ、
  3. USINGに指定したパラメタが5個以下の一意名である。かつ、
  4. 3.の一意名に添字または部分参照を1個以上指定している。かつ、
  5. 4.の添字または部分参照に一意名を指定している。かつ、
  6. 3.と5.の一意名の個数の合計が6個以上である。
(注1)JMN9333I-W (STD)CALL文中のUSING句に指定した作用対象の個数は5個 以下でなければなりません。処理を続行します。
3 V10.1.0 V10.2.0 PG77217 以下の条件で作成された実行形式ファイルを対話型デバッガにてデバッグするとき、 対話型デバッガがアベンドするため、デバッグが開始できません。
  1. COPY文で登録集を取り込んでいる。かつ、
  2. 取り込んだCOPY登録集が手続き部見出しのみである。かつ、
  3. 1.と2.にあてはまるソースプログラムを、翻訳オプションTESTを指定して翻訳した。
4 V10.1.0 V10.2.0 PG74245 以下の条件の場合、翻訳時異常終了することがあります。
  1. 手続き部の規模が比較的大きい(目安として1万行以上(注2))プログラムである。 かつ、
  2. オブジェクト指定子を使用している。
(注2)1万行以上はあくまでも目安です。書き方によっては1万行以下で発生する 可能性もあります。ただし一行に複数の文を書くようなことをしていない、標準的なプログラミング形式であれば、 数万行以上なければ、現象発生の可能性は極めて低いです。
5 V10.1.0 V10.2.0 PG77383 以下の条件の場合、実行時に正しい実行結果が得られないことがあります。
  1. 翻訳オプションOPTIMIZEが有効である。(注3-1)かつ、
  2. 内部10進項目を数字編集項目へ設定している文を記述している。かつ、
  3. 内部10進項目と数字編集項目のけた数は、「整数部のけた数が同じ、かつ、 小数部がない」である。かつ、
  4. 数字編集項目は、編集方法にゼロ抑制のみを指定している(PICTUREの文字列には '9','Z','*'のみを使用している)。かつ、
  5. 2.の文の前に、データ項目(または中間結果)を2.の内部10進項目へ設定する文 (注3-2)を記述している。かつ、
  6. 5.のデータ項目(または中間結果)のけた数と2.の内部10進項目のけた数の 関係が次のようになっている。かつ、
         ------------------------------------------------------
             データ項目(または中間結果)    内部10進項目
         ------------------------------------------------------
                  2                             3
                  4                             5
                  6                             7
                  8                             9
                 10                            11
                 12                            13
                 14                            15
                 16                            17
         ------------------------------------------------------
    
  7. 5.のデータ項目(または中間結果)と2.の内部10進項目の両方に小数部がない。
(注3-1)デフォルトの翻訳オプションはNOOPTIMIZEです。
(注3-2)数字転記はMOVE文だけでなく、COMPUTE文などの暗黙に転記が 発生する場合も該当します。
6 V10.1.0 V10.2.0 PG75097 以下の環境・発生条件の場合、Windows版 NetCOBOL Studioのリモートデバッグ機能を使用して、 Red Hat Enterprise Linux (for Intel64)上で動作するCOBOLアプリケーションに対するリモートデバッグを開始する際、 「デバッガ本体部またはエンジン部でエラーが発生しました。(65535)」が表示され、デバッグを開始できません。
【環境】
NetCOBOLのリモート開発において、サーバ環境が以下に該当する場合、本現象が発生します。
  1. サーバがRed Hat Enterprise Linux (for Intel64)。かつ、
  2. サーバには以下のいずれかの製品がインストールされている。かつ、
    • Linux (x64) NetCOBOL Enterprise Edition 開発・運用パッケージ V10.1.0
    • Linux (x64) NetCOBOL Enterprise Edition 運用パッケージ V10.1.0
  3. サーバ上で使用しているgdbが7.0版以降である(RHEL 5.5以降をインストールしている場合、 またはgdb-7.0以降を単独でインストールしている場合が該当します)。
【発生条件】
COBOLアプリケーションを、Windows版 NetCOBOL Studioからリモートデバッグする場合
7 V10.1.0 V10.2.0 PG77463 以下の条件の場合、翻訳時にCOBOLコンパイラが以下のメッセージを出力して異常終了することがあります。
「プログラム名xxxxxxxx」 0: JMN0102I-U 翻訳処理が続行不可能となりました. 他の診断メッセージが表示されている場合は,それらを修正して,再度翻訳してみて下さい. (区名=JMNRAL, モジュール名=SABEMAC, 詳細コード=6202, 行情報=yy.)
  1. 表示ファイル機能を使用している。かつ、
  2. 表示ファイルの特殊レジスタ (注4)を比較条件の作用対象に指定している。かつ、
  3. 2.の特殊レジスタを日本語項目で修飾している。
(注4)表示ファイルの特殊レジスタ
  • EDIT-MODE
  • EDIT-OPTION
  • EDIT-OPTION2
  • EDIT-OPTION3
  • EDIT-COLOR
  • EDIT-STATUS
  • EDIT-CURSOR
8 V10.1.0 V10.2.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つ以上指定されている。
9 V10.1.0 V10.2.0 PG78833 以下の条件の場合、翻訳時にCOBOLコンパイラが次のメッセージを出力して異常終了することがあります。
「プログラム名xxxxxxxx」 0: JMN0102I-U 翻訳処理が続行不可能となりました.他の 診断メッセージが表示されている場合は,それらを修正して,再度翻訳してみて下さい. (区名=JMNRAL, モジュール名=SABEMAC, 詳細コード=6202, 行情報=yy.)
  1. 翻訳オプションBINARY(BYTE)が有効である。かつ、
  2. 翻訳オプションCHECK(NUMERIC)またはCHECK(ALL)が有効である。かつ、
  3. 手続き部内に、添字付けおよび部分参照付けを使用した文がある。かつ、
  4. 3.の文の添字、部分参照の最左端文字位置、または部分参照の長さのいずれかに USAGE COMP-5の2進データ項目を指定している。かつ、
  5. 4.の2進データ項目の桁数が10桁~16桁である。
または、
  1. 翻訳オプションBINARY(BYTE)が有効である。かつ、
  2. 外部プログラムを呼び出すUSING BY VALUE指定のCALL文が存在する。かつ、
  3. 2.CALL文にUSING BY VALUE指定のデータ項目がCOMP-5の2進項目である。かつ、
  4. 3.の2進データ項目の桁数が10桁~16桁である。
10 V10.1.0 V10.2.0 PG79472 以下の条件の場合、翻訳時に以下のメッセージを出力して異常終了することがあります。
「プログラム名xxxxxxxx」 0: JMN0102I-U 翻訳処理が続行不可能となりました.他の 診断メッセージが表示されている場合は,それらを修正して,再度翻訳してみて下さい. (区名=JMNRAL, モジュール名=SABEMAC, 詳細コード=5460, 行情報=yy.)
  1. 二項演算の加減算がある。かつ、
  2. 1.の作用対象の一意名は符号付き内部10進または符号付き外部10進である。かつ、
  3. 1.の作用対象の一意名は桁数が同じである。かつ、
  4. 1.の結果の一意名は、1.の作用対象の一方と同じ一意名である。
[例]
 01 A PIC S9(4) COMP-3.
 01 B PIC S9(4) COMP-3.
 01 C PIC S9(4) DISPLAY.
 01 D PIC S9(4) DISPLAY.
      :
     COMPUTE A = A + B.
     SUBSTRUCT C FORM D.
11 V10.1.0 V10.2.0 PG79150 以下の条件の場合、翻訳時にメッセージを出力しないで異常終了することがあります。
  1. 翻訳オプションOPTIMIZEが有効である。かつ、
  2. 手続き部で、以下の一意名を使用している(注5)
    • 添字付けをしているデータ項目
    • 部分参照をしているデータ項目
    • 可変反復データ項目
    • 可変反復データ項目と同じ集団項目に含まれるデータ項目
(注5)翻訳時のメモリの状態に依存するため、条件に一致しても 異常終了しないことがあります。

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