Messages in this thread | | | Date | Mon, 15 Nov 2010 21:10:49 -0700 | From | Jeff Law <> | Subject | Re: gcc 4.5.1 / as 2.20.51.0.11 miscompiling drivers/char/i8k.c ? |
| |
On 11/15/10 16:07, Richard Guenther wrote: >> >> If the address of the auto isn't taken, then why is the object in memory to >> begin with (with the obvious exception for aggregates). > Exactly sort of my point. If people pass the address of&x to an asm > and modify&x + 8 expecting the "adjacent" stack location to be changed > I want to tell them that's not a supported way to get to another stack > variable (even if they clobber "memory"). Or consider the C-decl guy > who wants to access adjacent parameters by address arithmetic on > the address of the first param ... Well, in that case, I think we can easily say that the programmer has gone off the deep end and has entered the realm of undefined behavior.
Presumably we rooted out all relevant instances of the latter over the last 20 years... It was fairly common in the past, but I doubt anyone worth caring about is still writing code assuming they can take the address of parameter A, offset it and get parameters B, C, D, etc.
jeff
| |