ここでは、NetCOBOL開発環境について、NetCOBOL V10.2.0以降で修正された障害により動作が変わるものを、下表で説明します。
表2.1 NetCOBOL開発環境の障害修正に関する互換情報項番 | V/L(*) | P番号 | 変更内容 |
---|
1 | V10.1.0 ~ V10.5.0A | PG76651 | 以下の条件の場合、COBOLプログラム実行時に、長さの異なる日本語項目(日本語編集項目、組込み関数を含む)同士の大小比較の結果が正しくない問題を修正しました。 翻訳オプションRCS(UTF16,LE)またはRCS(UCS2,LE)が有効である(*1)。かつ、 (*1)翻訳オプションの省略値はRCS(UTF16,LE)です。 日本語項目と、日本語項目または日本語文字定数の大小比較である。かつ、 少なくとも一方が部分参照された項目またはANY LENGTH句の指定がある項目である。かつ、 比較対象の長さが異なる場合。
|
2 | V10.1.0 ~ V10.5.0A | PH02265 | 以下の条件の場合、翻訳時エラーにならない場合がある問題を修正しました。 プログラム、クラスまたはメソッドの外部名に連結式を記述している。かつ、 連結式の先頭に以下のいずれかを記述している。かつ、 連結式中に以下のいずれかを記述している場合。
|
3 | V10.1.0 | PG75097 | 以下の環境・発生条件の場合、Windows版 NetCOBOL Studioのリモートデバッグ機能を使用して、Red Hat Enterprise Linux (for Intel64)上で動作するCOBOLアプリケーションに対するリモートデバッグを開始する際、「デバッガ本体部またはエンジン部でエラーが発生しました。(65535)」が表示され、デバッグを開始できないことがある問題を修正しました。 [環境] NetCOBOLのリモート開発において、サーバ環境が以下に該当する場合、本現象が発生します。 サーバがRed Hat Enterprise Linux (for Intel64)である。かつ、 サーバに、以下のいずれかの製品がインストールされている。かつ、 サーバ上で使用しているgdbが7.0版以降である(RHEL5.5以降をインストールしている場合、またはgdb-7.0以降を単独でインストールしている場合が該当します)。
[発生条件] COBOLアプリケーションを、Windows版 NetCOBOL Studioからリモートデバッグする場合。 |
4 | 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つ以上指定されている場合。
|
5 | 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:デフォルトの翻訳オプションはOPTIMIZEです。 *2:数字転記はMOVE文だけでなく、COMPUTE文などの暗黙に転記が発生する場合も該当します。 |
6 | V11.0.0 | PH04215 | 以下の条件の場合、COBOLプログラム実行時、INVOKE文またはメソッドの行内呼出しのパラメタの受け渡しが正しく行われず、実行結果が正しくない(*1)問題を修正しました。 *1:パラメタが文字化け、または、途中で切れます。 実行時コード系がUnicodeである。かつ、 以下のいずれかに日本語項目または日本語文字定数を指定している。かつ、 2.から呼び出されるメソッドの仮パラメタにANY LENGTH句を指定した日本語項目を定義している。かつ、 以下のいずれかである場合。
*2:パラメタのエンコード方式が異なる呼び出しは誤った書き方をしているにもかかわらず、翻訳エラーになりません。 |
7 | V11.0.0 | 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.
|
8 | V10.1.0 ~ V11.0.0 | PH05538 | 以下の条件1、条件2または条件3のいずれかを満たす場合、COBOLプログラムの実行時、基底場所節に宣言したデータ項目を使用する文で、異常終了(Segmentation Fault)または結果誤りが発生する問題を修正しました。 |
9 | V10.1.0 ~ V11.0.0 | PH05861 | 以下の条件の場合、COBOLプログラムの実行時、部分参照した外部10進項目から数字編集項目または浮動小数点項目への転記において、送出し側を部分参照する範囲が1桁左にずれる問題を修正しました。 送出し側が符号付き外部10進項目、受取り側が数字編集項目または浮動小数点項目のMOVE文を記述している(*1)。かつ、 送出し側項目のSIGN句にSEPARATE CHARACTER指定(*2)がある。かつ、 送出し側項目を部分参照している。かつ、 3.の部分参照の長さを定数で指定している場合。
*1: 暗黙のMOVE文を含む。 *2: TRAILING SEPARATE指定 |
10 | V10.1.0 ~ V11.0.0 | PH06787 | 以下の条件1または条件2のいずれかを満たす場合、COBOLプログラムの実行時、仮パラメタに正しく値を受渡しできない問題を修正しました。 条件1 次の何れかの呼出しを使用している。かつ、 INVOKE文によるメソッド呼出し メソッドの行内呼出し
1.の呼出しで次の何れかのパラメタを指定している。かつ、 BY CONTENTを指定したパラメタ 定数節のデータ項目 文字定数
1.の呼出し先の仮パラメタにJUSTIFIED句を指定している。かつ、 2.のパラメタの長さと3.の仮パラメタの長さが異なる場合。
条件2 次の何れかの呼出しを使用している。かつ、 INVOKE文によるメソッド呼出し メソッドの行内呼出し
1.の呼出しで次の何れかのパラメタを指定している。かつ、 BY CONTENTを指定したパラメタ 定数節のデータ項目 文字定数
1.の呼出し先の仮パラメタにBLANK WHEN ZERO句を指定している。かつ、 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 ← 正しくは" " |
* : V/Lは障害が存在する範囲を示します。