------- 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