How to use cppcheck's inline suppression filte

2019-02-06 00:37发布

I would like to use Cppcheck for static code analysis of my C++ code. I learned that I can suppress some kind of warnings with --inline-suppr command. However, I can't find what "suppressed_error_id" I should put in the comment:

// cppcheck-suppress "suppressed_error_id"

4条回答
相关推荐>>
2楼-- · 2019-02-06 00:38

According to the cppcheck help:

The error id is the id that you want to suppress. The easiest way to get it is to use the --xml command line flag. Copy and paste the id string from the xml output.

So run cppcheck against some code that contains the error with the --xml flag, and then look in the generated XML file to find its name.

查看更多
我想做一个坏孩纸
3楼-- · 2019-02-06 00:39

According to the cppcheck man page, you can use the --template option to change the default output to include the id, e.g.

cppcheck /the/src/file --template='{file}:{line},{severity},{id},{message}'
查看更多
Lonely孤独者°
4楼-- · 2019-02-06 00:59

You can change the output template to display the error id from the command line, which is quite neat.

For a Visual Studio format output with error id displayed, add this to your command line:

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

This will produce output something like this:

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

Which you can then suppress by adding the line:

// cppcheck-suppress bufferAccessOutOfBounds

To the previous line in the source file.

查看更多
老娘就宠你
5楼-- · 2019-02-06 00:59

If you're using the GUI, you can right click on the message that you want to suppress to pop up a menu. Select "Copy message id". Paste the message id into your code in place of "suppressed_error_id".

查看更多
登录 后发表回答