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 -- To unsubscribe from this list: send the line "unsubscribe linux-next" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html