On Fri, Oct 19, 2012 at 8:18 AM, Richard Yang <weiy...@linux.vnet.ibm.com> wrote: > On Fri, Oct 19, 2012 at 07:23:09AM +0200, Stefani Seibold wrote: >> >>Am Freitag, den 19.10.2012, 00:37 +0200 schrieb richard -rw- weinberger: >>> On Thu, Oct 18, 2012 at 3:59 PM, Wei Yang <weiy...@linux.vnet.ibm.com> >>> wrote: >>> > In kfifo_in marco, one piece of code is arounded by if(0). This code in >>> > introduced by Stefani Seibold <stef...@seibold.net> to suppress a compiler >>> > warning. This warning is not there with the upgrade of gcc version. >>> > >>> > This patch just remove this code. >>> >>> Are you sure? >>> This code fragment looks like a compiler bomb to detect type mismatch to >>> me... >>> >> >>Yes, you are great! That was the reason why i made this peace of code. >>So don't remove it! > Thanks for your confirmation. > > Hmm, would you give me a hint on how it check the type mismatch?
Here a small hint: ---cut--- struct x { }; struct y { }; #define check(a, b) \ ({ \ if (0) { \ typeof(a) __dummy __attribute__ ((unused)); \ __dummy = (typeof(b))NULL; \ } \ }) int main(int argc, char **argv) { struct x _x; struct y _y; check(&_x, &_x); //okay check(&_x, &_y); //will explode with "assignment from incompatible pointer type" return 0; } ---cut--- -- Thanks, //richard -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/