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-only -Wbad-function-cast
ведет себя ожидаемым образом:
gcc -Wbad-function-cast -Q --help=warning,c
Нет дополнительных сообщений и сообщений об изменениях состояния предупреждения между [disabled]
и [enabled]
. Опять же, независимо от того, используется g++
или gcc
.
Я использую GCC версии 7.3.0. Хотя проблема, кажется, относится ко многим, если не ко всем версиям. Это можно увидеть через Compiler Explorer .
Итак, есть ли способ сделать этот запрос относительно данного языка?