const + optimizations [WAS: Need C optimization help]

Segher Boessenkool segher@kernel.crashing.org
Fri Aug 13 16:48:00 GMT 2010


>> Modifying an object via a const lvalue is a constraint violation; any
>> program that does this is not a valid C program.
>
> Is the compiler able to use that for optimizations (eg. hold
> const variables in registers, etc) ?

Well, it's forbidden, GCC will give an error.

But I suppose you mean if GCC can use the const-ness of objects
to direct optimisation?  It can.

>> Modifying a const object via a non-const lvalue is undefined  
>> behaviour.
>
> Is there a flag to forbid that ?

It's always forbidden, but it cannot always be detected; halting
problem and all that.


Segher



More information about the Gcc-help mailing list