This is the mail archive of the 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: named warnings & individual warning control

On Jun 25, 2004, at 12:48 PM, David Taylor wrote:

Date: Fri, 25 Jun 2004 14:25:07 -0400
From: DJ Delorie <>

Also, -O[23] tends to confuse this as they defer the use of warning
flags until after the whole file is parsed, so pragmas between
function definitions don't do what you expect :-(

I'm not sure what to say about the problem in the last paragraph; that's
clearly a serious user interface issue. This is part of why I have long
argued that only front ends should be permitted to issue warnings, and
that all attempts to use back-end data flow analysis to issue warnings
are mistaken, no matter how clever they seem.

Barring huge changes in the design of the internals of gcc, I'm happy with documenting that such pragmas should come before any functions in the source or else they may not apply. That's in line with the "the user shouldn't be doing this unless they absolutely have to" theory.

Putting on my user hat --

I have for years wanted the ability to turn individual warnings off
for small parts of a file.  If I have to put the pragma before all
the functions -- i.e., if it applies to the whole file, nothing
smaller -- then I don't think it's worth the effort to implement it.

Seriously.  We already have a solution to that problem -- it's
modifying the command line switches used to compile the file.

Actually, we don't have a solution to that problem. Two things we don't have: 1. When a user sees a warning message, there's no good way for them to figure out which command-line switch controls that warning. The documentation doesn't help. Even if it did, users shouldn't have to look at it. (The way I usually figure out which command-line switch goes with a warning message is by grepping through the source.) 2. Some warnings don't have command-line switches that control them.

I agree that pragmas are important, but I think we'd better
solve these two problems first before worrying about pragmas.


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