web-dev-qa-db-ja.com

C ++コードにcppcheckのインライン抑制フィルターオプションを使用するにはどうすればよいですか?

C++コードの静的コード分析にCppcheckを使用したいと思います。 --inline-supprコマンドである種の警告を抑制できることを学びました。ただし、コメントに入力する必要のある「suppressed_error_id」が見つかりません。

// cppcheck-suppress "suppressed_error_id"
25
Blaise

Cppcheckヘルプによると:

エラーIDは、抑制したいIDです。これを取得する最も簡単な方法は、-xmlコマンドラインフラグを使用することです。 xml出力からid文字列をコピーして貼り付けます。

したがって、--xmlフラグの付いたエラーを含むコードに対してcppcheckを実行し、生成されたXMLファイルを調べてその名前を見つけます。

18
anon

出力テンプレートを変更して、コマンドラインからエラーIDを表示できます。これは非常に便利です。

エラーIDが表示されたVisualStudio形式の出力の場合は、これをコマンドラインに追加します。

--template "{file}({line}): {severity} ({id}): {message}"

これにより、次のような出力が生成されます。

s:\src\jpeg.cpp(123): error (bufferAccessOutOfBounds): Buffer access out-of-bounds: abRY

次に、次の行を追加して抑制できます。

// cppcheck-suppress bufferAccessOutOfBounds

ソースファイルの前の行へ。

21
Andy Krouwel

cppcheckのマニュアルページ によると、--templateオプションを使用して、デフォルトの出力を変更し、IDを含めることができます。

cppcheck /the/src/file --template='{file}:{line},{severity},{id},{message}'
3
mabraham

GUIを使用している場合は、抑制したいメッセージを右クリックしてメニューをポップアップできます。 「メッセージIDのコピー」を選択します。 「suppressed_error_id」の代わりにメッセージIDをコードに貼り付けます。

0
Sara Wolfie