Re: Compatibility issue with 2.2.19pre7

From: Richard Henderson (rth@twiddle.net)
Date: Wed Jan 24 2001 - 02:51:15 EST


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/



This archive was generated by hypermail 2b29 : Wed Jan 31 2001 - 21:00:17 EST