20. About

This is a cppcheck wrapper script with appropriate parameters for checking RIOT. It accepts a branch name as an argument which is used to limit the scope of the check. Other parameters will be passed to cppcheck, so you can further modify its behavior.

21. Example usage

Check all files changed in the current branch against the branch named ‘master’:

./dist/tools/cppcheck/check.sh master

Check all files but ignore warnings about unused struct members:

./dist/tools/cppcheck/check.sh --suppress=unassignedVariable

Check all files changed in the current branch against the branch named ‘master’, ignoring warnings about unassigned variables:

./dist/tools/cppcheck/check.sh master  --suppress=unassignedVariable

22. Default options

This script suppresses warnings of the type “unusedStructMember” by default. If you want to get warnings about “unusedStructMembers” run the script with the –show-unused-struct option: ./dist/tools/cppcheck/check.sh –show-unused-struct [BRANCH] [options to be passed]

23. What to do about the findings

You should read the code carefully. While cppcheck certainly produces valuable information, it can also warn about code that is actually OK. If this happens, you can add an “inline suppression” like this:

/* cppcheck-suppress passedByValue */
timex_t timex_add(const timex_t a, const timex_t b);