メインコンテンツ

ファイルがコンパイルされない場合は解析を停止 (-stop-if-compile-error)

コンパイル エラーによって解析を停止しなければならないことを指定

説明

1 つのコンパイル エラーであっても解析を停止しなければならないことを指定します。

オプションの設定

以下のいずれかの方法を使用してオプションを設定します。

  • Polyspace Platform ユーザー インターフェイス (デスクトップ製品のみ): プロジェクト構成の [静的解析] タブで [環境設定] ノードを選択してから、このオプションを選択します。

  • コマンド ラインとオプション ファイル: オプション -stop-if-compile-error を使用します。コマンド ライン情報を参照してください。

このオプションを使用する理由

このオプションを使用して、最初にすべてのコンパイル エラーを解決してから Polyspace® 解析を実行します。この手順によって、すべてのファイルが確実に解析されるようにします。

そうでない場合、コンパイル エラーのないファイルのみが完全に解析されます。コンパイル エラーのあるファイルでは、コンパイル エラーの性質によって、一部の関数が解析されない場合があります。

  • コンパイル エラーが関数本体内で発生した場合、そのファイル内のコンパイル エラーがない残りの関数のみが解析されます。コンパイルされない関数には、代わりにスタブが使用されます。

  • 関数シグネチャなど、関数本体以外でコンパイル エラーが発生する場合は、コンパイル エラーの性質によって、ファイル内の残りの関数は解析される場合と解析されない場合があります。コンパイルされない関数に対してスタブを生成することはできません。

実際の関数定義の代わりにスタブを使用すると、解析の精度が低下することがあります。そのため、完全な解析を実行する前に、すべてのコンパイル エラーを修正することをお勧めします。Code Prover の実行時チェックは複数の関数間での範囲の伝播に大きく依存するため、このオプションは Code Prover 解析には非常に有効です。

設定

オン

発生するコンパイル エラーが 1 つの場合でも、解析は停止します。

解析時に生成されるテキスト ファイルである解析ログでエラーを確認できます。ログ ファイルには Polyspace_R20##n_ProjectName_date-time.log という名前が付けられ、コンパイル エラーを示す error: で始まる行が含まれています。詳細については、Polyspace 解析が停止したときのエラー情報の表示を参照してください。

オフ (既定の設定)

コンパイル エラーが原因で解析は停止しませんが、解析されるのはコンパイル エラーのないファイルのみです。コンパイル エラーのあるファイルでは、コンパイル エラーの性質によって、一部の関数が解析される場合があります。コンパイル エラーが関数定義内部で発生している場合、解析ではその関数は未定義と見なされます。解析でそのような関数定義を必要とする場合、その関数について広範な仮定が行われます。

  • 関数の戻り値は、そのデータ型で許容される任意の値になる可能性がある。

  • 関数は、参照渡しされる引数がそのデータ型に許容されるすべての値になるように、それらを変更する可能性がある。

この仮定があまりにも広範に及ぶと、解析の精度が低下する可能性があります。たとえば、実行時チェックによって、実際には失敗しない演算がオレンジでフラグ付けされることがあります。

コマンド ライン情報

パラメーター: -stop-if-compile-error
既定値: オフ
例 (Bug Finder): polyspace-bug-finder -sources filename -stop-if-compile-error
例 (Code Prover): polyspace-code-prover -sources filename -stop-if-compile-error
例 (Bug Finder Server): polyspace-bug-finder-server -sources filename -stop-if-compile-error
例 (Code Prover Server): polyspace-code-prover-server -sources filename -stop-if-compile-error

バージョン履歴

R2017a で導入