Re: Compatibility issue with 2.2.19pre7

Richard Henderson (rth@twiddle.net)
Tue, 23 Jan 2001 23:51:15 -0800


On Thu, Jan 11, 2001 at 12:59:24AM +0100, Andrea Arcangeli wrote:
> What I said is that I can write this C code:
>
> int x[2], * p = (int *) (((char *) &x)+1);
> main()
> {
> *p = 0;
> }
>
> This is legal C code.

Err, no. This is not "legal" by any stretch of the imagination.
This code has undefined behaviour.

As such, it may work, it may sigbus, it may write data at some
address unrelated to "x", or it may start World War III (with
appropriate hardware attached).

We aren't even obliged to allow this to compile.

r~
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/