指摘の抑制
このセクションでは、外部構成ファイル (SCONF) を使用してマクロ、ファイル、ディレクトリをどのようにして抑制するかについて、以下の方法を説明します。
- 接続されたプロジェクトの実行中に、Validate から SCONF ファイルをインポートする
- 他の構成ファイルと同様に、kwcheck または kwciagent を使用して SCONF ファイルをインポートする
- kwbuildproject
--exclude-issuesの実行中に SCONF ファイルを提供する
複数のマクロがある場合、欠陥は (埋め込まれたマクロではなく) 親マクロに関連して報告されます。たとえば、次のコードでは、欠陥のある MISRA.CAST.VOID_PTR_TO_INT.2012 は
check_assert() マクロに関連して報告され、MAP_FAILED マクロに関連しては報告されません。#define MAP_FAILED (void *)-1
#define check_assert(expr) if (!expr) { abort(); }
void f(void *p)
{
check_assert(p != MAP_FAILED);
} 複数のマクロまたは埋め込まれたマクロを使用しており、親マクロを抑制できない場合は、Validate で指摘ステータスを手動で割り当てることを検討してください (Not a problem に変更するなど)。
それらを同じ構成ファイルに追加することで、複数の抑制構成を使用して指摘を抑制できます。複数の構成ファイルを準備することもできます。
kwbuildproject --replace-path を使用している場合、抑制は、置換されたパスではなく元のパスを使用します。パスパターンを使用することをお勧めします。完全なパスを使用する場合は、新しいパスではなく元のパスを使用します。