On Sun, Jun 27, 2010 at 02:56:33PM +0300, Nikos Chantziaras wrote: > On 06/27/2010 01:47 PM, Enrico Weigelt wrote: > > * Nikos Chantziaras<[email protected]> schrieb: > > > >> Did it actually occur to anyone that warnings are not errors? You can > >> have them for correct code. A warning means you might want to look at > >> the code to check whether there's some real error there. It doesn't > >> mean the code is broken. > > > > In my personal experience, most times a warning comes it, the > > code *is* broken (but *might* work in most situations). > > That's the key to it: most times. Granted, without -Wall (or any other > options that tweaks the default warning level) we can be very sure that > the warning is the result of a mistake by the developer. But with > -Wall, many warnings are totally not interesting ("unused parameter") > and some even try to outsmart the programmer even though he/she knows > better ("taking address of variable declared register"). In that last > example, fixing it would even be wrong when you consider the optimizer > and the fuzzy meaning of "register" which the compiler is totally free > to ignore.
The compiler is not totally free to ignore the register keyword. Both the C and the C++ standards require that the compiler complain when taking the address of a register variable. Other compilers will issue a hard error for it. Fixing the code to not declare the variable as register would be the correct thing to do. Make sure you *understand* warnings, and then you can decide whether to fix the code, if there is anything to fix, or to ignore.
