Suppress -Wunknown-pragmas warning in GCC

Robert Hegner picture Robert Hegner · Oct 11, 2012 · Viewed 12.9k times · Source

I try to ignore warnings coming from some 3rd party header files like this:

#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

This approach seems to work in general, but not for the unknown pragma warnings (I still get them).

Why does it work for other warnings but not for this one? Can anyone confirm this behaviour?

I'm using g++ (version 4.7.1) with -Wall and -std=c++0x under Debian.

Answer

Nik Reiman picture Nik Reiman · May 1, 2014

I've run into this annoyance, too. According to the GCC manpage -Wall turns on -Wunknown-pragmas for you, so just manually disable it using -Wno-unknown-pragmas after -Wall.

There is a GCC feature request to make this work using #pragma GCC diagnostic: