Я не могу заставить метод временно отключить предупреждения в GCC (см. Как отключить предупреждения GCC для нескольких строк кода ), по крайней мере, для предупреждения "unknown-pragmas".
Компиляция этого кода ...
#pragma comment(user,"This should depend on the command line options")
#pragma GCC diagnostic warning "-Wunknown-pragmas"
#pragma comment(user,"This should cause a warning")
#pragma GCC diagnostic error "-Wunknown-pragmas"
#pragma comment(user,"This should cause an error")
#pragma GCC diagnostic ignored "-Wunknown-pragmas"
#pragma comment(user,"This should be ignored")
... не выдает ни предупреждения / ошибки (за исключением того, что компоновщик жалуется на отсутствие main
), либо при использовании -Wall
или просто -Wunknown-pragmas
выдает одно предупреждение для каждой из прагм комментария.
Я ожидал бы, что каждый комментарий должен был вызывать именно то, что говорится в комментарии.
Я думаю, что могу подкрепить свои ожидания документацией :
На данный момент можно контролировать только предупреждения (обычно контролируемые с помощью "-W ..."), но не все из них. Используйте -fdiagnostics-show-option
, чтобы определить, какая диагностика является управляемой и какая опция управляет ими.
предупреждения, которые я получаю, показывают как
warning: ignoring #pragma comment [-Wunknown-pragmas]
и, как говорит нам часть в скобках,
- эта диагностика является управляемой
- и опция
-Wunknown-pragmas
управляет им
Следовательно, мой код должен работать.
Так что я делаю не так?
информация о версии:
$ gcc --version
gcc (Ubuntu 5.4.0-6ubuntu1~16.04.11) 5.4.0 20160609