On 13 May 2015 at 21:01, Brian Paul <bri...@vmware.com> wrote: > On 05/13/2015 01:18 PM, Francisco Jerez wrote: >> >> Emil Velikov <emil.l.veli...@gmail.com> writes: >> >>> As we evaluate sizeof() at compile time, having the run-time assert() >>> does not provide any benefits. Move to the compile-time version >>> STATIC_ASSERT() which will kindly prompt us when this go wrong. >>> >> >> This doesn't look right. AFAIK STATIC_ASSERT() is implemented by >> expanding to an array type-id of negative size, which is an error >> regardless of whether the sizeof expression is evaluated or not: i.e. >> "0 ? sizeof(invalid) : ..." is still an error for the same reason that >> "0 * sizeof(invalid)" or "(void)sizeof(invalid)" is an error. That and >> also that the whole thing is wrapped in a do-while loop you cannot use >> as operand of the ternary operator... > > > Yeah, this does not build with MSVC: > > C:\Users\Brian\projects\mesa\src\gallium\auxiliary\util/u_inlines.h(83) : > error C2059: syntax error : 'do' > C:\Users\Brian\projects\mesa\src\gallium\auxiliary\util/u_inlines.h(83) : > error C2143: syntax error : missing ';' before ',' > C:\Users\Brian\projects\mesa\src\gallium\auxiliary\util/u_inlines.h(83) : > error C2059: syntax error : ')' > C:\Users\Brian\projects\mesa\src\gallium\auxiliary\util/u_inlines.h(89) : > error C2059: syntax error : 'do' > [...] > This one goes straight into the bitbin. Thanks for the explanation Francisco and test Brian.
-Emil _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev