Messages in this thread | | | Date | Tue, 29 Jul 2008 09:33:10 -0700 (PDT) | From | Linus Torvalds <> | Subject | Re: linux-next: build failure |
| |
On Tue, 29 Jul 2008, Ingo Molnar wrote: > > the fix is simple enough. > > but the question is, wont it generate huge artificial stackframes with > CONFIG_MAXSMP and NR_CPUS=4096?
Quite the reverse.
The "address-of statement expression" is the one that is more likely to generate artificial stack-frames because of a temporary variable (of course, I wouldn't count on it, since statement expressions are gcc extensions, and as such the gcc people could make up any semantics they want to them, including just defining that a statement expression with an lvalue value is the same lvalue rather than any temporary).
In contrast, "address-of lvalue" is _guaranteed_ to not do anything stupid like that, and gives just the address-of.
Oh, and I was wrong about the &*x losing the 'const'. It doesn't. So I think Stephen's patch is fine after all - if somebody tries to modify the end result through the pointer, it will give a big compiler warning.
Linus
| |