http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52635
--- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-03-20 18:06:33 UTC --- Not sure what kernel you are looking at, but in current kernel at least since 2009-09 BUILD_BUG_ON is BUILD_BUG_ON_ZERO and only MAYBE_BUILD_BUG_ON macro is using this sizeof and from the description it sounds like it wants the warnings only if the condition is known to be false already during parsing.