Re: [PATCH] C undefined behavior fix

Paul Mackerras
2002-01-04T09:31:22Z

Pavel Machek writes:

> gcc is allowed not to pass it anywhere. You may not second guess
> optimizer. If it is not defined, it is not defined.
>
> Imagine
>
> strcpy(a, "xyzzy"+b);
> if (b>16)
> printf("foo");
>
> . gcc is permitted to kill printf(), because if b<0 or b>16 behaviour is
> undefined. So gcc may assume b<=16.

So... I'm curious. How is the result of virt_to_phys ever anything
other than undefined?

Paul.