c++ - 使用 compile_commands.json 时的 Cppcheck 内联抑制
问题描述
我正在尝试了解 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(版本 1.82)时,cppcheck --enable=all --inline-suppr a.cpp
它很好。但是当我使用 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 在上述情况下表现不同,是否有任何记录在案的原因?如果不是,这可能是一个错误吗?
解决方案
我认为这是 1.82 版中的一个错误,因为使用较新的版本它可以正常工作。
推荐阅读
- python - 每当调用 model.fit() 时,权重是否会重新初始化
- flutter - 错误颤振:[sliver_list]'estimatedMaxScrollOffset >= endScrollOffset - childScrollOffset(firstChild)':不是真的
- python - 为什么尝试在 django settings.py 中更改语言时会出现错误?
- python - Python中的日期时间减法是非对称的?
- android - 在为 Android 读取 java 中的 JSON 字符串时,它给出错误 No value found when there's a value to find for "name"
- sql - 如何通过将相同的“adv_id”合并为一个来计算相同“广告”的不同“ip”
- pandas - 如何将索引列名称放在第一行?
- javascript - 在没有任何新状态值的情况下,如何在函数中将“setState”作为回调调用成功更新状态?
- java - 循环后标记的中断在Java中不起作用
- python - 如何将数据从熊猫数据框的一列拆分为新数据框的多列