------- Comment #12 from gdr at cs dot tamu dot edu 2006-01-18 20:33 ------- Subject: Re: want optional warning for non-constant declarations that could be constant
"sigra at home dot se" <[EMAIL PROTECTED]> writes: | ------- Comment #8 from sigra at home dot se 2006-01-18 19:29 ------- | > On Jan 18, 2006, at 11:19 AM, pcarlini at suse dot de wrote: | > | > > ------- Comment #4 from pcarlini at suse dot de 2006-01-18 16:19 | > > ------- | > > (In reply to comment #3) | > >> const does nothing when it comes to local variables except for not | > >> letting you | > >> touch it in other expressions. It does nothing for optimizations or | > >> anything | > >> else. | > > | > > This last point is not obvious at all, in my opinion. Why not? In | > > principle, | > > certainly const-ness *can* help optimizers one way or the other. Is | > > this just a | > > current limitation? A design choice? Anything in the standard making | > > that | > > tricky? I would like to know more. | > | > | > int f(const int *a, int *b) | > { | > *b = 1; | > return *a; | > } | > | > a and b can alias and there is no way around that at all because that is | > what the C++ standard says. | | In this case the compiler should warn because a could be declared "const int * | const" and b could be declared "int * const". It does not make any sense to require the compiler to give a warning in that case. -- Gaby -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25845