12.4 データ影響波及分析で解析または調査する項目の制限
データ影響波及分析で解析または調査する項目の制限です。
-
ファイル記述項で同一のファイルに複数のレコードが定義されている場合,または複数のレコード記述項が異なるファイル記述項に従属し,これらのファイル記述項が同じSAME RECORD AREA句で参照されている場合,それらのレコードは領域を共有しない独立したレコードとして扱われ,レコード間の影響は無視されます。
-
同じ名前の外部データ項目の構造がプログラム間で異なる場合(従属項目の位置やサイズが異なる場合),プログラム間の外部データ項目の影響関係は正しく解析できません。
-
BY REFERENCE仮引数が手続き部(USING指定を除く)でまったく参照されていない場合,その仮引数は実引数から影響を受けないものとして扱われます。
-
画面節(WINDOWS SECTION)のデータ項目や通信節で暗黙に宣言されるデータ項目は分析の対象になりません。データ影響波及分析の対象でないデータ項目については,「12.1.2 影響波及分析の対象とするデータ項目」を参照してください。
-
添字式や部分参照の位置式または長さ式に現れたデータ一意名は,その文のどの作用対象にも影響を及ぼさないものとして扱われます。一意名が指定されている場合の規則については,「表12-5 一意名が指定されている場合の取り扱い規則」を参照してください。
-
REPLACING指定のCOPY文またはREPLACE文で複数語を一度に置換する場合,置換される語を影響波及コードの表示対象にはできません。置換される複数語の中に影響波及データ項目が含まれていた場合,置換される先頭の語を含む行を影響波及コードとして表示します。
-
REPLACING指定のCOPY文またはREPLACE文で複数語を一度に置換する場合,置換される語を影響波及コードに表示できません。置換される複数語の中に影響波及データ項目が含まれていた場合,置換される先頭の語を含む行を影響波及コードとして表示します。
-
構造が不一致の集団項目間の転記で,OCCURS句が指定されている集団項目を従属項目として含む集団項目が影響を与える作用対象または影響を受ける作用対象である場合,OCCURS句指定のある反復データ項目の従属項目は繰り返し数1の反復データ項目として解析します。このため,反復データ項目の従属項目と影響し合う,影響を与える作用対象または影響を受ける作用対象との影響2項関係が正しく設定できないことがあります。
例)
01 X. 01 Y. 02 XA OCCURS 3 TIMES. 02 YA OCCURS 3 TIMES. 03 XB PIC X(2). 03 YB PIC X(3). 03 XC PIC X(2). 03 YC PIC 9(4). 03 XD PIC 9(4). MOVE X TO Y.
この例では,「XD(1)とYB(2)」「XB(3)とYC(3)」は領域が重なるが,XB・XC・XD・YB・YCを繰り返し数1の反復データ項目として解析するため,XからYへの転記では「XD->YB」「XB->YC」の影響2項関係を設定しません。
-
集団項目を構造が違う別の集団項目で再定義した場合の転記で,OCCURS句が指定されている集団項目を従属項目として含む被再定義集団項目または再定義集団項目が,影響を与える作用対象または影響を受ける作用対象のとき,OCCURS句指定のある反復データ項目の従属項目は繰り返し数1の反復データ項目として解析します。そのため,反復データ項目の従属項目と影響し合う,影響を与える作用対象または影響を受ける作用対象との影響2項関係が正しく設定できないことがあります。
例)
01 X. 01 Y REDEFINES X. 02 XA OCCURS 3 TIMES INDEXED I. 02 YA OCCURS 3 TIMES. 03 XB PIC X(2). 03 YB PIC X(3). 03 XC PIC X(2). 03 YC PIC 9(4). 03 XD PIC 9(4).
- MOVE 10 TO XD(I).
-
「XD(1)とYB(2)」は領域が重なるが,XB・XC・XD・YB・YCを繰り返し数1の反復データ項目として解析するため,この転記では「XD->YB」の影響2項関係を設定しません。
- MOVE 10 TO XB(I).
-
「XB(3)とYC(3)」は領域が重なるが,XB・XC・XD・YB・YCを繰り返し数1の反復データ項目として解析するため,この転記では「XB->YC」の影響2項関係を設定しません。
-
構造が一致する集団項目間の転記で,従属項目に内部ブール項目がある場合は,ビット数が一致するデータ項目の影響2項関係が設定されます。構造が不一致の集団項目間の転記で,従属項目に内部ブール項目がある場合は,内部ブール項目とビット数が一致しないデータ項目であっても,同一のバイト領域にあるデータ項目であるときは,領域が重なっていると見なし,内部ブール項目との影響2項関係が設定されます。
例)
01 A. 01 X. 02 B PIC 1(4) BIT. 02 Y PIC 1(3) BIT. 02 C PIC 1(4) BIT. 02 Z PIC 1(5) BIT. MOVE A TO X.
AからXへの転記では,「A->X」の明示的影響2項関係が設定されます。また,ビット数の一致するデータ項目はないが,「BとY」「BとZ」「CとY」「CとZ」は同一のバイト領域にあるデータ項目であるため,領域が重なっているとみなし,「B->Y」「B->Z」「C->Y」「C->Z」の暗黙的影響2項関係が設定されます。