Question

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"
Was it helpful?

Solution

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.

OTHER TIPS

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.

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}'

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".

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top