GCC warnings for unused global variables
Bruce Korb
bkorb@veritas.com
Fri May 2 16:17:00 GMT 2003
It seems to me that an important goal of software tools is to facilitate
writing software. Writing software is hard enough without extra impediments.
Is this warning accomplishing that goal? Well, what are the costs and benefits?
Cost: hundreds of thousands (millions?) of existing source modules will either
have to change, ignore this warning, not be compilable by current GCC,
or loose the benefit of -Wall.
Benefit: sloppily patched programs will be marked as having squandered tens,
hundreds or even thousands of bytes of memory that apparently might
get optimized away anyway (assuming it isn't marked 'volatile').
I really think that pretty much clarifies what is more important.
Nevertheless, it is still possible to set -Wall and then suppress
specific warnings, right? So why such a big deal?
WRT volatile:
> | Accessing a volatile object includes writing, and writing includes
> | initializing. So the initialization cannot be optimized out.
>
> Why? the last part of the paragraph quoted above does specifically
> permit that optimization where applicable.
Here's the main deal: you'll violate a reasonable interpretation
that will make life hard for programmers just because of a, well,
unusual interpretation of the wording. REMEMBER: you are trying
to help programmers accomplish their task. You are not trying to
cause grief just because the law of the C language left a hole
allowing you to whack 'em.
More information about the Gcc
mailing list