如何让Cppcheck忽略包含内联汇编的特定函数?
如何让Cppcheck忽略包含内联汇编的特定函数检查
我有多个包含内联汇编的函数,Cppcheck会在这些代码里检测出一些误报(比如对汇编语法的误解)。我可以单独抑制单个错误,但代码更新后错误内容可能变化,有没有办法直接让Cppcheck忽略整个函数的检查?
示例代码:
// cppcheck-suppress ignoreThisFunction? void test_func() { __asm ; enter hl = void *src // style:Variable 'hl' is assigned a value that is never used out (c),h // warning:Found suspicious operator ',' __endasm; }
可行的解决方法
函数级单行抑制:在函数上方添加
// cppcheck-suppress all,直接忽略该函数内所有检查:// cppcheck-suppress all void test_func() { __asm ; enter hl = void *src out (c),h __endasm; }用属性标记函数:在函数定义时加上
__cppcheck_ignore__属性,让Cppcheck跳过整个函数的检查:void __cppcheck_ignore__ test_func() { __asm ; enter hl = void *src out (c),h __endasm; }配置文件批量忽略:如果有多个这类函数,可在Cppcheck配置文件(如
cppcheck.cfg)里添加忽略规则:<?xml version="1.0"?> <rules> <rule> <ignore>test_func</ignore> <ignore>another_asm_func</ignore> <!-- 其他需要忽略的函数名 --> </rule> </rules>运行时指定配置文件:
cppcheck --config=cppcheck.cfg your_code.cpp
内容的提问来源于stack exchange,提问作者Under4Mhz
相关产品推荐
相关产品推荐

