From: Ingo Molnar <mingo@elte.hu>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Rusty Russell <rusty@rustcorp.com.au>,
Alexey Dobriyan <adobriyan@gmail.com>,
Andrew Morton <akpm@linux-foundation.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Sam Ravnborg <sam@ravnborg.org>
Subject: Re: [PATCH] debug: fix BUILD_BUG_ON() for non-constant expressions
Date: Sun, 17 Aug 2008 20:45:10 +0200 [thread overview]
Message-ID: <20080817184510.GA16508@elte.hu> (raw)
In-Reply-To: <alpine.LFD.1.10.0808171129350.3324@nehalem.linux-foundation.org>
* Linus Torvalds <torvalds@linux-foundation.org> wrote:
>
>
> On Sun, 17 Aug 2008, Ingo Molnar wrote:
> >
> > try the patch below - it only gives this error during build:
>
> Well, you didn't do it right:
>
> > +#define __BBO(c) sizeof(const char[1 - 2*!!(c)])
> > +#define __BBONC(c) __BBO(!__builtin_constant_p(c))
> > +#define BUILD_BUG_ON_ZERO2(c) (__BBO(c) - __BBONC(c))
> > +#define BUILD_BUG_ON2(c) (void)BUILD_BUG_ON_ZERO(c)
>
> Look at the #define of BUILD_BUG_ON2 a bit more.
>
> Hint: you're using the _wrong_ BUILD_BUG_ON_ZERO. The old one, not the v2
> one!
yeah, i already tried various variants earlier today so i really didnt try
that hard with yours. (and i pointed out this mistake in the previous mail)
> That said, with that fixed, there's still something wrong. It does seem
> like gcc has some very odd interaction there with __builtin_constant_p.
> Odd.
yeah. I tried various integer arithmetic expressions (which the array trick
relies on) and it didnt work as expected - it's always zero. It only makes
a difference when used in comparisons. (and that's where the kernel uses
__builtin_constant_p quite heavily, and it works fine there.)
Odd indeed.
Ingo
next prev parent reply other threads:[~2008-08-17 18:45 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-08-16 10:09 [PATCH] BUILD_BUG_ON sucks Alexey Dobriyan
2008-08-16 10:55 ` Rusty Russell
2008-08-16 20:07 ` Linus Torvalds
2008-08-17 10:32 ` [PATCH] debug: fix BUILD_BUG_ON() for non-constant expressions Ingo Molnar
2008-08-17 16:56 ` Linus Torvalds
2008-08-17 17:33 ` Ingo Molnar
2008-08-17 17:53 ` Ingo Molnar
2008-08-17 18:39 ` Linus Torvalds
2008-08-17 18:45 ` Ingo Molnar [this message]
2008-08-18 1:09 ` Rusty Russell
2008-08-18 7:54 ` Ingo Molnar
2008-08-18 9:55 ` Boaz Harrosh
2008-08-18 12:32 ` Boaz Harrosh
2008-08-19 13:34 ` Ingo Molnar
2008-08-19 16:33 ` Boaz Harrosh
2008-08-20 10:59 ` Ingo Molnar
2008-08-20 12:31 ` Boaz Harrosh
2008-08-20 12:39 ` adobriyan
2008-08-20 13:07 ` Boaz Harrosh
2008-08-21 12:17 ` Ingo Molnar
2008-08-25 1:19 ` Rusty Russell
2008-08-20 13:21 ` Boaz Harrosh
2008-08-16 17:46 ` [PATCH] BUILD_BUG_ON sucks Andrew Morton
2008-08-17 12:19 ` Theodore Tso
2008-08-17 16:33 ` Andrew Morton
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20080817184510.GA16508@elte.hu \
--to=mingo@elte.hu \
--cc=adobriyan@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=rusty@rustcorp.com.au \
--cc=sam@ravnborg.org \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.