This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: any way to disable a single *instance* of a GCC warning?


> <http://gcc.gnu.org/onlinedocs/gcc/Diagnostic-Pragmas.html>
says:
"while it is syntactically valid to put these pragmas anywhere in your
sources, the only supported location for them is before any data or
functions are defined"

so what you are doing is already "illegal" so to speak :)

I would guess that the reason such information cannot be localised to
a single line is that the compiler is free to re-order the code to
optimise it, so the code no longer exists in a line-by-line form by
the time the checks are applied (if, indeed, it ever did except in the
preprocessor). In other words, what you are trying to do is not
possible due to the way code gets munged in the compiler.
   Syntactically, it may seem to "only apply to that line" but in
reality that line and the other lines in that function are part of a
code soup that get gently stirred throughout the compilation process;
only externally-visible (non-static) functions remain separate
entities (and maybe not even them due to the possibility common code
sharing).
  I supose that is why is is generous enough to work for you at a
function level.

More generally, obsessing over compiling warnings is not too good a
thing. The recent debacle whereby Debian bods had removed the random
seeding from openssl, thereby making it generate breakable keys for
the entire universe for several years, was caused by a well-meaning
but ill-considered attempt to quiet a compiler warning. Surely there
are more important issues to be dealt with...

     M


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]