cppcheck throws syntaxError with #ifdef



我有一个文件,可以总结如下:

namespace MyNamespace {
#if defined(SOME_UNSET_CONDITION)
TEST_CASE("STR1", "[STR2]") {
}
TEST_CASE("STR3", "[STR4]") {
}
#endif
}

在文件上调用Cppcheck v2.8时,输出如下:

$ cppcheck --std=c++14 -v tmp.cpp
Checking tmp.cpp ...
Defines:
Undefines:
Includes:
Platform:Native
Checking tmp.cpp: SOME_UNSET_CONDITION...
tmp.cpp:8:1: error: syntax error [syntaxError]
TEST_CASE("STR3", "[STR4]") {
^

SOME_UNSENT_CONDITION指令目前没有在这个项目中启用,虽然我不确定为什么cppcheck会抱怨。有人能给我点建议吗?

谁能给我一些见解呢?

From https://cppcheck.sourceforge.io/manual.pdf:

预处理器定义的自动配置

Cppcheck自动测试不同组合的预处理器定义来实现在分析中尽可能高的覆盖率。

这意味着cppcheck检查项目中所有可能定义的所有可能组合。

如果您打算禁用检查特定组合,-USOME_UNSET_CONDITIONfor cppcheck。

最新更新