Messages in this thread | | | Date | Tue, 23 Jan 2001 23:51:15 -0800 | From | Richard Henderson <> | Subject | Re: Compatibility issue with 2.2.19pre7 |
| |
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/
| |