Bug in loop optimize (invalid postinc to preinc transformation)
Jamie Lokier
egcs@tantalophile.demon.co.uk
Wed Dec 27 22:24:00 GMT 2000
Alexandre Oliva wrote:
> > Compiling without optimization indicates that the compiler is
> > transforming (p++ < x) into (++p < (x+1)), even when not optimizing.
> > This transformation is incorrect because x+1 wraps around.
>
> Overflow invokes undefined behavior. Since incrementing p in this
> case involves overflow, I think the transformation is ok, as far as
> undefined behavior goes.
Overflow of unsigned integers has defined behaviour -- they wrap. The
question is, what rule applies to pointer comparisons?
-- Jamie
More information about the Gcc
mailing list