Messages in this thread | | | Date | Wed, 30 Sep 2009 07:29:38 +0100 | From | "Jan Beulich" <> | Subject | Re: linux-next: tree build failure |
| |
>>> roel kluin <roel.kluin@gmail.com> 29.09.09 11:51 >>> >On Tue, Sep 29, 2009 at 11:28 AM, Jan Beulich <jbeulich@novell.com> wrote: >>>>> Hollis Blanchard 09/29/09 2:00 AM >>> >>>First, I think there is a real bug here, and the code should read like >>>this (to match the comment): >>> /* type has to be known at build time for optimization */ >>>- BUILD_BUG_ON(__builtin_constant_p(type)); >>>+ BUILD_BUG_ON(!__builtin_constant_p(type)); >>> >>>However, I get the same build error *both* ways, i.e. >>>__builtin_constant_p(type) evaluates to both 0 and 1? Either that, or >>>the new BUILD_BUG_ON() macro isn't working... >> >> No, at this point of the compilation process it's neither zero nor one, >> it's simply considered non-constant by the compiler at that stage >> (this builtin is used for optimization, not during parsing, and the >> error gets generated when the body of the function gets parsed, >> not when code gets generated from it). >> >> Jan > >then maybe > >if(__builtin_constant_p(type)) > BUILD_BUG_ON(1); > >would work?
Definitely not - this would result in the compiler *always* generating an error.
Jan
| |