【问题标题】:How to suppress a warning in clang++?如何抑制clang ++中的警告?
【发布时间】:2021-06-03 01:54:51
【问题描述】:

我编译了以下c++程序:

 int main() {  2==3;  }

与:

clang++-5.0 -std=c++17 -Wunused-comparison prog.cpp

并收到警告:

warning: equality comparison result unused [-Wunused-comparison]
2==3;
~^~~

...所以,这可能不是在 CLANG 中抑制警告的正确方法。

clang manual中,这部分是一个“TODO”。

禁用警告的正确命令行标志是什么?

【问题讨论】:

    标签: warnings clang++


    【解决方案1】:

    在您获得的 clang 诊断中:

    $ cat main.cpp
    int main()
    {
        2==3;
        return 0;
    }
    
    $ clang++ -c main.cpp
    main.cpp:3:6: warning: equality comparison result unused [-Wunused-comparison]
        2==3;
        ~^~~
    1 warning generated.
    

    括号里的:

    -Wunused-comparison
    

    告诉您-Wunused-comparison 是负责诊断的启用警告(在这种情况下默认启用)。因此,要抑制诊断,您可以使用匹配的 -Wno-... 标志明确禁用该警告:

    $ clang++ -c -Wno-unused-comparison main.cpp; echo Done
    Done
    

    这同样适用于 GCC。

    一般来说,压制警告是鲁莽的。人们应该慷慨地启用它们 - -Wall -Wextra [-pedantic] - 然后修复有问题的代码。

    【讨论】:

      猜你喜欢
      • 2017-01-24
      • 2019-05-08
      • 2021-09-04
      • 2011-06-24
      • 1970-01-01
      • 2019-02-25
      • 2011-03-18
      • 1970-01-01
      相关资源
      最近更新 更多