我希望移除/忽略一段代码的clang警告,发现多个使用指令(pragama)的例子。例如,如果警告是unused-variable
,您可以通过以下方式禁用它:
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wunused-variable"
int a;
#pragma clang diagnostic pop
然而问题在于,当构建存储库时,输出中没有任何警告,我只知道哪个clang检查会给出警告......我找不到其他任何问题或文档与此相符。这是我的输出结果:
warning: Use of memory after it is freed [clang-analyzer-cplusplus.NewDelete]
我尝试了数百种忽略此问题的不同组合,但都无效(使用// NOLINT
不是可行的选项)。以下是我尝试过的一些方法:
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Winline-new-delete"
#pragma clang diagnostic ignored "-Wmost"
#pragma clang diagnostic ignored "-Weverything"
#pragma clang diagnostic ignored "clang-analyzer-cplusplus.NewDelete"
#pragma clang diagnostic ignored "-Wclang-analyzer-cplusplus.NewDelete"
#pragma clang diagnostic ignored "-clang-analyzer-cplusplus.NewDelete"
#pragma clang diagnostic ignored "-W-NewDelete"
#pragma clang diagnostic ignored "-W-new-delete"
// code
#pragma clang diagnostic pop
请注意,修复代码也不是一个选项,因为它是第三方代码。