Clang Diagnostics,如何忽略编译器特定的扩展
Clang Diagnostics, how to ignore compiler specific extensions
我的生产代码是在带有一些语言扩展的专有编译器上编译的,例如:
__even_in_range(TA2IV, TA2IV_TAIFG);
但是我使用 clang 作为代码分析工具,并得到这个错误 error: use of undeclared identifier '__even_in_range'
。产生类似行为的语言扩展很少。有没有办法让 clang 忽略某些标识符?
编辑:
这两条评论都引导我定义解决方案,因此我将这些编译器选项添加到代码分析包中(我使用 https://github.com/lvzixun/Clang-Complete 包)。
-D __even_in_range(y,x)=y
-D __interrupt=
这样 none 我的来源受到静态分析工具的影响
谢谢...
您可以使用预定义的宏 __clang_analyzer__
来识别分析器正在 运行,并且在这种情况下只 #define
那些扩展:
#ifdef __clang_analyzer__
#define __even_in_range(...)
...
#endif
详细信息 here,以及消除误报的其他想法。
我的生产代码是在带有一些语言扩展的专有编译器上编译的,例如:
__even_in_range(TA2IV, TA2IV_TAIFG);
但是我使用 clang 作为代码分析工具,并得到这个错误 error: use of undeclared identifier '__even_in_range'
。产生类似行为的语言扩展很少。有没有办法让 clang 忽略某些标识符?
编辑: 这两条评论都引导我定义解决方案,因此我将这些编译器选项添加到代码分析包中(我使用 https://github.com/lvzixun/Clang-Complete 包)。
-D __even_in_range(y,x)=y
-D __interrupt=
这样 none 我的来源受到静态分析工具的影响
谢谢...
您可以使用预定义的宏 __clang_analyzer__
来识别分析器正在 运行,并且在这种情况下只 #define
那些扩展:
#ifdef __clang_analyzer__
#define __even_in_range(...)
...
#endif
详细信息 here,以及消除误报的其他想法。