メインコンテンツ

既知の結果または許容可能な結果についてのコードへの注釈 (非推奨)

メモ

R2017b 以降、Polyspace ではより単純な注釈形式を使用します。コードへの注釈付けと既知の結果または許容可能な結果の非表示を参照してください。

修正できない欠陥または修正するつもりのない欠陥が Polyspace® によってコード内で検出された場合は、コードに注釈を追加できます。注釈は、既知または許容可能な欠陥またはコーディング ルール違反を示すコード コメントです。注釈を使用すると、以下が可能になります。

  • 既にレビューしている、以前の解析の欠陥またはコーディング ルール違反をレビューすることを回避する。

  • レビュー コメントおよび分類の保持。

メモ

ソース コードの注釈はコード コメントには適用されません。次のルールに注釈を付けることはできません。

  • MISRA C™:2004 Rule 2.2 および 2.3

  • MISRA C:2012 Rule 3.1 および 3.2

  • MISRA-C++ ルール 2-7-1

  • JSF++ ルール 127 および 133

Polyspace インターフェイスからの注釈の追加

この手順では、Polyspace インターフェイスのレビュー コメントおよび分類をコードの注釈に変換する方法を示します。

  1. [結果のリスト] ペインまたは [結果の詳細] ペインで、結果に [重大度][ステータス] および [コメント] を割り当てます。

    1. 結果をクリックします。

    2. [重大度] ドロップダウン リストと [ステータス] ドロップダウン リストでオプションを選択します。

    3. [コメント] フィールドには、結果についての認識がしやすくなるようなコメントまたはキーワードを入力します。

  2. [結果のリスト] ペインで、コメントを付けた結果を右クリックして [事前定義の正当化情報をクリップボードに追加] を選択します。重大度、ステータスおよびコメントがクリップボードにコピーされます。

  3. 結果をもう一度右クリックして [エディターを開く] を選択します。ソース ファイルの欠陥の場所が開きます。

  4. 欠陥またはコーディング ルール違反を含む行の直前の行にクリップボードの内容を貼り付けます。

    レビュー コメントを Polyspace 注釈構文のコード コメントとして表示できます。このコード コメントは、次の解析時に Polyspace でレビュー コメントをもう一度事前設定するために使用されます。

  5. ソース ファイルを保存して、解析を再実行します。

    [結果のリスト] ペインで、注釈を付けた欠陥またはルール違反について、[重大度][ステータス] および [コメント] 列が事前設定されます。これらのフィールドはコードの注釈から事前設定されるため、読み取り専用です。注釈に特定のキーワードまたはステータスを使用している場合は、結果をフィルター処理して、注釈を付けた結果の表示と非表示を切り替えることができます。フィルター処理の詳細については、Polyspace デスクトップ ユーザー インターフェイスでの結果のフィルター処理とグループ化を参照してください。

注釈の手動追加

この手順では、Polyspace のコード注釈構文を使用して、コメントをソース ファイルに直接入力する方法を示します。この構文は大文字と小文字を区別せず、注釈に続く C/C++ コードの最初のコメント解除された行に適用されます。

  1. エディターでソース ファイルを開き、注釈を付けるコード行またはコード セクションを特定します。

  2. 次のいずれかの注釈を追加します。

    • 1 行のコードの場合は、注釈を付けるコード行の直前に次のテキストを追加します。

      /* polyspace<Type:Kind1[,Kind2] : [Severity] : [Status] > [Notes] */

    • コード セクションの場合は、次の構文を使用します

      /* polyspace:begin<Type:Kind1[,Kind2] : [Severity] : [Status] > [Notes] */
      
      ... Code section ...
      
      /* polyspace:end<Type:Kind1[,Kind2] : [Severity] : [Status] >  */

      マクロが複数行に展開される場合、マクロ自体の対象となるのが 1 行の場合でも、コード セクションにこの構文を使用します。その 1 行の構文は、拡張されたマクロの最初の行に表示される結果にのみ適用されます。

  3. TypeKind1[Kind2][Severity][Status] および [Additional text] を、次の表に示す指定可能な値に置き換えます。大かっこ [] で囲まれたテキストはオプションであるため、削除できます。構文の例を参照してください。

    Word指定可能な値
    Type

    結果のタイプ:

    • Defect (Polyspace Bug Finder™)

    • RTE (実行時チェック (Polyspace Code Prover™) の場合)

    • VARIABLE (グローバル変数 (Polyspace Code Prover) の場合)

    • CODE-METRIC (コード複雑度メトリクスの場合)

    • MISRA-C (MISRA C:2004 の場合)

    • MISRA-AC-AGC

    • MISRA-C3 (MISRA C:2012 の場合)

    • MISRA-CPP

    • JSF

    • Custom (カスタム コーディング ルール違反の場合)

    Kind1,[Kind2],...

    欠陥、実行時チェック、およびコード メトリクスの場合は、チェッカーの短い名前を使用します。詳細は、以下を参照してください。

    コーディング ルール違反の場合は、1 つ以上のルール番号を指定します。

    グローバル変数の場合は、指定可能な値は ALL だけです。

    可能性のあるすべての欠陥またはコーディング ルールにコメントを適用する場合は、ALL を指定します。

    Severity

    欠陥がどの程度重大であるかを示すテキスト。次のいずれかを入力します。

    • Unset

    • High

    • Medium

    • Low

    このテキストは [結果のリスト] ペインの [重大度] 列に入ります。

    Status

    コードのエラーをどのように修正するかを示すテキスト。次のいずれか、または他のテキストを入力します。

    • Unreviewed

    • To investigate

    • To fix

    • Justified

    • No action planned

    • Not a defect

    • Other

    このテキストは [結果のリスト] ペインの [状態] 列に入ります。このステータスは結果が正当化されているかどうかを判断するために Polyspace Access でも使用されます。結果を正当化するには、JustifiedNo action planned、または Not a defect を使用します。

    Notesキーワードやステータスと重大度に関する説明などの追加のコメント。

構文の例

  • 単一の欠陥:

    /* polyspace<Defect:HARD_CODED_BUFFER_SIZE:Medium:To investigate> Known issue */
    int table[100];
    

  • 単一の実行時チェック:

    /* polyspace<RTE: ZDV : High : To Fix > Denominator cannot be zero */
    y=1/x;
  • 単一の MISRA C:2012 ルール違反:

    /* polyspace<MISRA-C3: 13.1 : Low : Justified> Known issue */
    int arr[2] = {x++,y}; 

  • 使用されないグローバル変数:

    /* polyspace<VARIABLE: ALL : Low : Justified> Variable to use later*/
    int var_unused;
    

  • 複数の欠陥:

    polyspace<Defect:USELESS_WRITE,DEAD_CODE:Low:No Action Planned> OK issue
    

  • 複数の JSF® ルール違反:

    polyspace<JSF:9,13:Low:Justified> Known issue