COBOL2002 使用の手引 手引編


32.7.4 初期化漏れチェック機能

ここでは,初期化漏れチェック機能の使用方法について説明します。

〈この項の構成〉

(1) 初期化漏れチェック機能の概要

初期化漏れチェック機能とは,データ項目を参照しているが,値の設定(初期化)がされていない,またはその可能性のあるデータ項目を「初期化漏れ」として検出する機能です。

実行時に検出される初期化漏れが原因の不良は,不良個所の特定のために複数のプログラムにわたった調査が必要になります。このため,不良個所の特定に時間が掛かることがあります。初期化漏れチェック機能を使用すると,コンパイル時に初期化漏れを検出でき,テスト工程前に対策できるため,COBOLプログラムの開発効率を向上できます。

初期化漏れチェック機能で「初期化漏れ」を検出するCOBOLソースの例を次の図に示します。

図32‒4 初期化漏れチェック機能で「初期化漏れ」を検出するCOBOLソースの例

[図データ]

(2) 初期化漏れチェック機能を使用するときに指定するコンパイラオプション

初期化漏れチェック機能を使用する場合は,コンパイル時に次のオプションを同時に指定します。

注※

次の場合,-Compile,CheckOnlyオプションが無効となるため,初期化漏れチェック機能も無効になります。

  • 明示的に-Compile,NoLinkオプションを指定した場合

注意事項
  • 初期化漏れチェック機能は,-CBLVALUEオプションおよび環境変数CBLVALUE,ならびに環境変数CBLINITVALUE指定時に設定される初期値を無視します。

  • 初期化漏れチェック機能は,プログラムを実行したときに通る可能性のある経路(制御ブロック)をすべて走査し,手続き文で参照されているデータ項目の初期化漏れをチェックします。ただし,環境変数CBL_UNINITDATA_BREAKOFFの指定が無効な場合に,走査した制御ブロックの数が上限を超えたときは,初期化漏れチェック機能の警告メッセージを出力して,初期化漏れチェック処理を打ち切ります。環境変数CBL_UNINITDATA_BREAKOFFについては,「32.6.3 コンパイラ環境変数の詳細」の「(2) CBL_UNINITDATA_BREAKOFF」を参照してください。

(3) 初期化漏れチェック機能の使用方法

初期化漏れチェック機能を使用するときの作業の流れを次の図に示します。初期化漏れチェック機能を使用する前に,あらかじめSレベル,Uレベルのコンパイルエラーがないことを確認してください。

図32‒5 初期化漏れチェック機能を使用するときの作業の流れ

[図データ]

初期化漏れチェック機能は,次の方法で使用できます。

(a) コンパイルリストから調査する方法

コンパイルリストから初期化漏れを調査する手順を次に示します。

  1. -CheckUninitDataオプション,-Compile,CheckOnlyオプションおよび-SrcListオプションを指定してコンパイルする。

    コンパイルリストに初期化漏れチェックの結果が出力されます。

  2. コンパイルリストまたは標準エラー出力に,初期化漏れチェック機能の警告メッセージが出力されていないかを確認する。

  3. 初期化漏れチェック機能の警告メッセージが出力されている場合は,メッセージの内容を確認して,初期化漏れの可能性があるデータ項目に,値設定が必要かどうかを確認する。

  4. 値設定が必要な場合は,プログラムを修正する。

(4) 初期化漏れチェック機能使用時の注意事項