メインコンテンツ

次に対する結果を生成しない (-do-not-generate-results-for)

解析結果が不要なファイルの指定

説明

このオプションは Bug Finder 解析のみに影響します。

解析結果が不要なファイルを指定します。

既定で、ヘッダー ファイルに関する結果は表示されません (ソース ファイルと同じフォルダーにない場合)。このオプションを使用して、一部のソース ファイル (またはソース ファイルと同じフォルダー内のヘッダー ファイル) からの結果も抑制できます。このオプションの入力として指定したソース ファイルまたはヘッダー ファイルは、Polyspace® 解析から除外されることはありません。このオプションは、結果を非表示にするだけです。たとえば、コンパイル エラーが存在するファイルの結果を非表示にしても、解析ではそれらのコンパイル エラーが表示されます。

オプション [ソースおよび次に対する結果を生成する] (-generate-results-for) を使用して、一部のインクルード フォルダーに関する結果を表示する場合は、このオプションを使用して、一部のサブフォルダーまたはそれらのインクルード フォルダー内のファイルからの結果を抑制できます。

オプションの設定

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

  • Polyspace ユーザー インターフェイス (デスクトップ製品のみ): プロジェクト構成で [入力およびスタブ] ノードを選択してから、このオプションの値を選択します。

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

  • コマンド ラインとオプション ファイル: オプション -do-not-generate-results-for を使用します。コマンド ライン情報を参照してください。

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

最も関連性の高いヘッダー ファイルの結果を確認するには、このオプションを使用します。

たとえば、既定では、ソース ファイルと同じフォルダーにあるヘッダー ファイルについての結果が生成されます。これらのヘッダーでの調査結果をレビューしない場合、このオプションの既定値を変更します。

Polyspace as You Code での既定の動作では、非ソース フォルダーのヘッダーも解析されないことに注意してください。このオプションを使用することで、解析対象外ファイルのスコープを、すべてのヘッダーまたはヘッダーの別のサブセットにまで拡大できます。Polyspace as You Code の解析範囲 (Polyspace Access)も参照してください。

設定

既定値: include-folders

include-folders

インクルード フォルダー (およびそのサブフォルダー) 内のヘッダー ファイルに関する結果が生成されません。

インクルード フォルダーは、Polyspace プロジェクトの Include フォルダーに追加する (または、コマンド ラインで引数 -I に指定する) フォルダーです。

インクルード フォルダーがソース フォルダーのサブフォルダーである場合、オプション値 [include-folders] を指定していても、そのインクルード フォルダーに含まれているファイルの結果が生成されます。この場合、オプション値 [custom] を使用して、無視するインクルード フォルダーを明示的に指定します。

all-headers

すべてのヘッダー ファイルの結果が生成されるわけではありません (.h または .hpp)。ヘッダー ファイルは、ソース ファイルと同じフォルダー、ソース ファイル フォルダーのサブフォルダー、インクルード フォルダーのいずれかにあります。

ソース ファイルは、Polyspace プロジェクトの Source フォルダーに追加する (または、コマンド ラインで引数 -sources に指定する) ファイルです。

インクルード フォルダーは、Polyspace プロジェクトの Include フォルダーに追加する (または、コマンド ラインで引数 -I に指定する) フォルダーです。

custom

指定したファイルの結果が生成されません。フォルダー名を入力すると、そのフォルダー (およびそのサブフォルダー) 内のファイルからの結果が抑制されます。

をクリックしてフィールドを追加します。ファイル名またはフォルダー名を入力します。

ヒント

  1. このオプションは、オプション [ソースおよび次に対する結果を生成する] (-generate-results-for) の適切な値と適宜組み合わせて使用します。

    [custom] を選択した際に、2 つのオプションの値が競合している場合は、より具体的な値によって結果の表示が決まります。たとえば、以下の例では、オプション [ソースおよび次に対する結果を生成する] の値の方が具体的です。

    ソースおよび次に対する結果を生成する次に対する結果を生成しない最終結果

    custom:

    C:\Includes\Custom_Library\

    custom:

    C:\Includes

    C:\Includes\Custom_Library\ とそのサブフォルダー内のヘッダー ファイルに関する結果は表示されますが、C:\Includes 内のその他のヘッダー ファイルに関する結果は生成されません。

    custom:

    C:\Includes\my_header.h

    custom:

    C:\Includes\

    C:\Includes\ にあるヘッダー ファイル my_header.h の結果は表示されますが、C:\Includes\ とそのサブフォルダーにあるその他のヘッダー ファイルの結果は生成されません。

    これら 2 つのオプションを組み合わせて使用すると、特定のフォルダーにあるすべてのファイルの結果を非表示にしながら、これらのフォルダーにある特定のファイルの結果を表示することができます。

  2. オプション -classification を使用して、一連のファイルの結果を表示したり、非表示にしたりすることもできます。このオプションでは、ファイル セットを定義して、それらのファイル セットに動作を関連付けることができます。ファイル セットに含まれるすべてのファイルに対して次の動作を指定した場合、ファイルに対してオプション -do-not-generate-results-for を使用するときと同じ効果を得られます。

    <show-results value="false"/>
    オプション -classification では、?* などのワイルドカード文字を使用してファイルおよびフォルダー パターンを指定できます。詳細は、次を参照してください。

  3. 欠陥またはコーディング ルール違反が 2 つのファイルに関連している場合は、そのいずれかのファイルの結果を生成しなくても、欠陥またはルール違反は表示されます。たとえば、ファイル myFile.cpp および myFile.h で名前の見た目が似ている 2 つの変数を定義した場合、myFile.h の結果を生成しなくても、MISRA™ C++ ルール 2-10-1 に対する違反が報告されます。MISRA C++ ルール 2-10-1 によると、異なる識別子は文字列として明確に区別されなければなりません。

    複数の翻訳単位をリンクしているときに発生する問題または検出される問題の有無をチェックする場合、欠陥またはコーディング ルールに複数のファイルが関与することがあります。以下に例を示します。

  4. 結果 (コーディング ルール違反または Bug Finder の欠陥) がマクロ内部にある場合、Polyspace は通常マクロの出現箇所ではなく、マクロ定義の結果を表示して、その結果を一度だけレビューできるようにします。マクロが非表示ファイルで使用されている場合でも、"非表示でないファイルでマクロ定義が行われている場合"、結果は依然としてマクロ定義に表示されます。

コマンド ライン情報

パラメーター: -do-not-generate-results-for
値: all-headers | include-folders | custom=file1[,file2[,...]] | custom=folder1[,folder2[,...]]
例 (Bug Finder): polyspace-bug-finder -lang c -sources file_name -misra2 required-rules -do-not-generate-results-for custom="C:\usr\include"
例 (Bug Finder Server): polyspace-bug-finder-server -lang c -sources file_name -misra2 required-rules -do-not-generate-results-for custom="C:\usr\include"

バージョン履歴

R2016a で導入