On Thu, 8 Jan 2009 21:48:35 +0100 Andi Kleen <andi@xxxxxxxxxxxxxx> wrote: > +/* > + * This macro obfuscates arithmetic on a variable address so that gcc > + * shouldn't recognize the original var, and make assumptions about it. > + * > + * This is needed because the C standard makes it undefined to do > + * pointer arithmetic on "objects" outside their boundaries and the > + * gcc optimizers assume this is the case. In particular they > + * assume such arithmetic does not wrap. > + * > + * A miscompilation has been observed because of this on PPC. > + * To work around it we hide the relationship of the pointer and the object > + * using this macro. > + * wow, thanks. I always wondered. -- 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