In gcc, how to mute the -fpermissive warning?

piwi picture piwi · Jun 7, 2012 · Viewed 41.2k times · Source

I am including a file from a third-party library that raises an error that can be downgraded to a warning with -fpermissive. But because I do not want to "pollute" my compilation log with these warnings, I want to completely disable this messages.

So far, I set the -fpermissive option with a diagnostic pragma when including the file; something like:

#pragma GCC diagnostic push
#pragma GCC diagnostic warning "-fpermissive"

#include <third-party-file.h>

#pragma GCC diagnostic pop

Since gcc usually provide both a "positive" and "negative" version of the -f flags, I thought about ignoring the "no-permissive" feature:

#pragma GCC diagnostic ignored "-fno-permissive"
#include <third-party-file.h>

But there does not seem to be a "negative" version of the -fpermissive flag (I am using gcc 4.6.3; but even the version 4.7.0 does not have it).

Any chance I can mimic this behavior? Thanks!

Answer

zwol picture zwol · May 15, 2013

It's maybe a bit late for this, but one of these ought to do what you wanted:

#pragma GCC diagnostic ignored "-fpermissive"

or

#pragma GCC diagnostic ignored "-pedantic"

"ignored" is how you squelch a diagnostic entirely, and the inverse of -fpermissive is -pedantic, for historical reasons.