【发布时间】:2019-06-25 11:31:47
【问题描述】:
GCC 允许使用以下语法查询特定于 C++ 语言的可用警告标志:
g++ -Q --help=warning,c++
向调用添加警告标志会将它们包含在结果中:
g++ -Wall -Q --help=warning,c++
但是,似乎调用是从 C 的角度完成的,我不知道如何从 C++ 的角度进行。如果调用包含纯 C++ 警告,例如:
g++ -Wnon-virtual-dtor -Q --help=warning,c++
输出包含一条消息:
cc1: warning: command line option ‘-Wnon-virtual-dtor’ is valid for C++/ObjC++ but not for C
并且仍然显示警告为禁用:
-Wnon-virtual-dtor [disabled]
请注意,无论调用是使用g++ 还是gcc 完成,都会发生这种情况。
与纯 C 相同的 -Wbad-function-cast 以预期的方式运行:
gcc -Wbad-function-cast -Q --help=warning,c
[disabled] 和 [enabled] 之间没有额外的消息和报告的警告状态更改。同样,无论是使用g++ 还是gcc。
我使用的是 GCC 版本 7.3.0。尽管该问题似乎适用于许多(如果不是全部)版本。 It can be observed through Compiler Explorer.
那么,有没有办法针对给定的语言进行此查询?
【问题讨论】:
标签: gcc gcc-warning