gpt4 book ai didi

c++ - Clang Diagnostics,如何忽略编译器特定的扩展

转载 作者:行者123 更新时间:2023-11-30 05:44:27 27 4
gpt4 key购买 nike

我的生产代码是在带有一些语言扩展的专有编译器上编译的,例如:

__even_in_range(TA2IV, TA2IV_TAIFG);

但我使用 clang 作为代码分析工具,并收到此错误 error: use of undeclared identifier '__even_in_range'。产生类似行为的语言扩展很少。有没有办法让 clang 忽略某些标识符?

编辑:这两条评论都引导我定义解决方案,因此我将这些编译器选项添加到代码分析包(我使用 https://github.com/lvzixun/Clang-Complete 包)。

  1. -D __even_in_range(y,x)=y
  2. -D __interrupt=

这样我的源代码就不会受到静态分析工具的影响

谢谢...

最佳答案

您可以使用预定义的宏 __clang_analyzer__ 来识别正在运行的分析器,并且在这种情况下只需#define 出那些扩展:

#ifdef __clang_analyzer__
#define __even_in_range(...)
...
#endif

详情 here ,以及其他消除误报的想法。

关于c++ - Clang Diagnostics,如何忽略编译器特定的扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29855902/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com