Vincent Lefevre writes: > On 2005-04-27 11:37:51 +0100, Andrew Haley wrote: > > Warnings are to help the programmer see where there is some code that, > > although not necessarily an error, may require some attention. This > > is a classic case of such a warning. This warning really does > > indicate to the programmer that there might be a real problem. > > On the other hand, too many warnings may annoy the programmer and have > the opposite effect.
Yes, but this isn't an example of a spurious warning. It's a really good warning, one that ought to be given. > > > and IMHO, there should be a way to disable it (possibly locally to > > > some part of the program). > > > > Why not just fix the code? > > I don't like the word "fix" since it is correct. But that applies to most warnings. if (a = b) is correct too. > > > But if they are never modified, they evaluate to constants, right? > > > > > > The fact that they are not considered as constant expressions, > > > is it due to the fact that the environment is allowed to modify > > > them? > > > > It's due to what the C standard says. A const variable in C isn't a > > constant, it's just a read-only variable. > > 1+1 isn't a constant either, but is allowed anyway. You said "if they are never modified, they evaluate to constants, right?" To which the correct answer is "no, they don't". Andrew.