メインコンテンツ

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

Polyspace 解析結果へのカスタム注釈形式適用時のエラーの修正

問題

オプション [-xml-annotations-description] を使用してカスタム注釈を Polyspace® 解析結果に適用する際に、一部のカスタム注釈が適用されず、コンソール出力またはデスクトップ インターフェイスの [出力の概要] に警告が表示されます。

考えられる解決策

カスタム注釈がマッピングに見つからない

カスタム注釈構文を定義しても Polyspace 注釈構文にマッピングしなかった場合、Polyspace はカスタム注釈を検出しますが、解析結果に適用しません。コンソール出力または Polyspace デスクトップ インターフェイスの [出力の概要] に次のような警告が表示されます。

Verifying sources ...
Verifying zero_div.c (1/1)
Warning: rule :50 from exampleCustomAnnotation not found in the mapping (XML file).
         Skipping the annotation

解決法.  -xml-annotations-description オプションに渡した XML ファイルの <Mapping/> セクションをチェックします。警告にリストされたルールを Polyspace ルールにマッピングしていない場合は、該当するエントリを追加してルールをマッピングします。たとえば、前記の警告のルール 50 を Polyspace コーディング ルール [MISRA C™:2012 Rule 8.4] にマッピングするには、次のエントリを <Mapping/> セクションに追加します。

<Result_Name_Mapping  Rule_Identifier="50" Family="MISRA-C3" Result_Name="8.4"/>

Polyspace 注釈が現在のコードに適用されない

カスタム注釈構文を定義して Polyspace 注釈構文にマッピングしても、Polyspace により一部のカスタム注釈がソース コードに適用されない場合があります。コンソール出力または Polyspace デスクトップ インターフェイスの [出力の概要] に次のような警告が表示されます。

Warning: These Polyspace annotations do not apply to the current code:
|          In file D:\Polyspace\Examples\zero_div.c line 7, annotation MISRA-C3:8.4 with text 
"Justified by annotation in source"
|          In file D:\Polyspace\Examples\zero_div.c line 20, annotation MISRA-C3:8.4 with text 
"Justified by annotation in source"
|        Possible reasons:
|          - Issue not detected with selected configuration options.
|          - Issue is fixed.
|          - Annotation syntax is incorrect

解決法.  考えられる以下の原因をチェックします。

  • 注釈が指摘する問題がソース コードで修正された。Polyspace はカスタム注釈を検出しても無視します。

  • 注釈が指摘する問題が、指定した解析オプションでは Polyspace で検出されなかった。たとえば、カスタム注釈が MISRA C:2012 コーディング規約違反を指摘している場合でも、オプション [MISRA C:2012 のチェック] (-misra3) が指定されなければ、Polyspace はこのコーディング規約違反をチェックしません。

  • 注釈が指摘する問題が検出されたが、Polyspace はカスタム注釈と対応する Polyspace 注釈を照合できなかった。これは、-xml-annotations-description オプションに渡した XML ファイルの <Mapping/> セクションの構文エラーを示します。

参考

トピック