我正在尝试学习cppcheck,因此我正在将它集成到我的示例项目的travis构建中。我修复了许多问题,因为cppcheck,但有一些假阳性,我想忽略通过内联抑制。
a.cpp
struct A {
int i;
};
// cppcheck-suppress unusedFunction
A operator+(const A &a1, const A &a2) {
return A{a1.i + a2.i};
}
int main() {
return 0;
}compile_commands.json
[
{
"directory": "/path/to/source",
"command": "/usr/bin/clang++-9 -std=gnu++17 -o a.o -c a.cpp",
"file": "a.cpp"
}
]当我以cppcheck --enable=all --inline-suppr a.cpp的形式运行cppcheck (版本1.82)时,就可以了。但是,当我使用compile_commands.json文件(如cppcheck --enable=all --inline-suppr --project=compile_commands.json )运行它时,我得到了以下结果:
Checking a.cpp ...
[a.cpp:6]: (style) The function 'operator+' is never used.在上述情况下,cppcheck的行为有什么不同的原因吗?如果不是,这有可能是个bug吗?
发布于 2020-03-28 08:52:11
我认为这是1.82版本中的一个bug,因为对于一个更新的版本,它正在完美地工作。
https://stackoverflow.com/questions/60895087
复制相似问题