1.5.2 制御フローを考慮した解析での注意事項
制御フローを考慮した解析使用時の固有の注意事項を次に示します。
制御フローを考慮した解析で例外が発生する文を解析する場合の注意
制御フローを考慮した解析では,例外が発生する制御フローを解析する場合,例外が発生する文による値設定の影響を受けないものと扱います。
例:
ADD A TO B ON SIZE ERROR MOVE B TO C NOT ON SIZE ERROR MOVE B TO D END-ADD.
このプログラムの場合,例外が発生する制御フローで実行される「MOVE B TO C」を解析するときは,例外が発生する文である「ADD A TO B」による値設定の影響を受けないものと扱うため,CはAの影響を受けません。例外が発生しない制御フローで実行される「MOVE B TO D」を解析するときは,例外が発生する文である「ADD A TO B」による値設定の影響を受けるものと扱うため,DはAの影響を受けます。
制御フローを考慮した解析で,STOP RUN文やEXIT PROGRAM文の後ろに書いた節や段落中のデータ項目を解析対象とした場合の注意
制御フローを考慮した解析では,STOP RUN文やEXIT PROGRAM文の後ろに書いた節や段落中のデータ項目を調査対象データ項目として指定した場合も,デッドコードのデータ項目を調査対象として指定したときと同様に,実際には実行されないプログラムや影響のないはずのデータ項目も影響を受ける扱いとなり,解析が正しく実行できないことがあります。
制御フローを考慮した解析で,PERFORM文,INPUT PROCEDUREまたはOUTPUT PROCEDURE指定のある文の処理を解析する場合の注意
-
PERFORM文,INPUT PROCEDUREまたはOUTPUT PROCEDURE指定のある文の処理内にデッドコードがある場合に,影響波及元解析を実行すると,デッドコードの一部も影響波及分析の対象となり,正しく解析されないことがあります。
-
PERFORM文,INPUT PROCEDUREまたはOUTPUT PROCEDURE指定のある文の処理で呼び出される節や段落を,これらの文を通さないで節や段落内の文を起点として解析した場合,NEXT STATEMENT指定のあるRESUME文はCONTINUE文として扱われます。
調査対象別名一覧および調査対象使用個所一覧を出力する場合の注意
調査対象別名一覧および調査対象使用個所一覧を出力する場合は,制御フローを考慮した解析が可能なデータ影響波及分析用データベースを使用してください。
開発マネージャでこのデータベースを作成する場合の注意事項については,「3.5 プロジェクトとデータ影響波及分析用データベースの関係」を参照してください。
制御フローを考慮した解析での埋め込みSQL文を解析する場合の注意
制御フローを考慮した解析では,埋め込みSQL文を解析する際,埋め込みSQL文による値設定の影響を受けないものと扱います。
例:
MOVE A TO B. EXEC SQL SELECT * INTO :B FROM T WHERE X = 1 END-EXEC. MOVE B TO C.
このプログラムの場合,埋め込みSQL文である「EXEC SQL文」による値設定の影響を受けないものと扱うため,CはAの影響を受けます。