Потискане на предупреждение -Wunknown-pragmas в GCC

Опитвам се да игнорирам предупрежденията, идващи от някои заглавни файлове на трети страни като този:

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunknown-pragmas"
#pragma GCC diagnostic ignored "-Wreorder"

#include <some_3rd_party_header.h>

#pragma GCC diagnostic pop

Този подход изглежда работи като цяло, но не и за неизвестните прагма предупреждения (все още ги получавам).

Защо работи за други предупреждения, но не и за това? Може ли някой да потвърди това поведение?

Използвам g++ (версия 4.7.1) с -Wall и -std=c++0x под Debian.


person Robert Hegner    schedule 11.10.2012    source източник
comment
Хм, gcc спазва потискането, g++ не. -Wno-unknown-pragmas опция ли е?   -  person Daniel Fischer    schedule 12.10.2012
comment
@DanielFischer Предполагам, че имате предвид като параметър на командния ред на компилатора? Това би деактивирало предупреждението и в моя собствен код, което не искам.   -  person Robert Hegner    schedule 12.10.2012
comment
Добре, разбираемо. Може би можете да опитате да включите тези заглавки като системни заглавки, както е предложено тук?   -  person Daniel Fischer    schedule 12.10.2012
comment
Това наистина би било хубаво решение и щеше да е първият ми избор от самото начало. Но аз работя с Eclipse (автоматично генерирани make файлове) и Eclipse не изглежда да предлага начин за маркиране на включена директория като системна включваща директория. Така че винаги използва -I, а не -isystem.   -  person Robert Hegner    schedule 12.10.2012
comment
Може да е свързано с този бъг: gcc.gnu.org/bugzilla/show_bug.cgi ?id=53431   -  person sigy    schedule 22.06.2016


Отговори (1)


И аз съм се сблъсквал с това раздразнение. Според страницата за ръководство на GCC -Wall включва -Wunknown-pragmas вместо вас, така че просто го деактивирайте ръчно, като използвате -Wno-unknown-pragmas след -Wall.

Има заявка за функция на GCC, за да може тази работа да се използва с #pragma GCC diagnostic:

person Nik Reiman    schedule 01.05.2014