From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
To: "Michael S. Tsirkin" <mst@redhat.com>
Cc: qemu-devel@nongnu.org, pbonzini@redhat.com,
Richard Henderson <rth@twiddle.net>,
Peter Maydell <peter.maydell@linaro.org>
Subject: Re: [Qemu-devel] [PATCH 3/4] compiler: expression version of QEMU_BUILD_BUG_ON
Date: Thu, 19 Jan 2017 11:29:49 +0000 [thread overview]
Message-ID: <20170119112949.GD2085@work-vm> (raw)
In-Reply-To: <1484771412-28024-4-git-send-email-mst@redhat.com>
* Michael S. Tsirkin (mst@redhat.com) wrote:
> QEMU_BUILD_BUG_ON uses a typedef in order to be safe
> to use outside functions, but sometimes it's useful
> to have a version that can be used within an expression.
> Following what Linux does, introduce QEMU_BUILD_BUG_ON_ZERO
> that return zero after checking condition at build time.
>
> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
> ---
> include/qemu/compiler.h | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/include/qemu/compiler.h b/include/qemu/compiler.h
> index 1a9eeb9..d2b05dd 100644
> --- a/include/qemu/compiler.h
> +++ b/include/qemu/compiler.h
> @@ -88,6 +88,8 @@
> #define QEMU_BUILD_BUG_ON(x) \
> typedef char glue(qemu_build_bug_on__,__LINE__)[(x)?-1:1] __attribute__((unused))
>
> +#define QEMU_BUILD_BUG_ON_ZERO(x) (sizeof(int[(x)?-1:1]) - sizeof(int))
> +
Yes, pretty much the same as:
https://lists.gnu.org/archive/html/qemu-devel/2016-10/msg07090.html
I'd used -sizeof(int[1]) in the right hand size to match the left, but
I think it should always be the same.
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
> #if defined __GNUC__
> # if !QEMU_GNUC_PREREQ(4, 4)
> /* gcc versions before 4.4.x don't support gnu_printf, so use printf. */
> --
> MST
>
>
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
next prev parent reply other threads:[~2017-01-19 11:30 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-01-18 20:30 [Qemu-devel] [PATCH 0/4] virtio: ARRAY_SIZE fixups Michael S. Tsirkin
2017-01-18 20:30 ` [Qemu-devel] [PATCH 1/4] virtio: fix up max size checks Michael S. Tsirkin
2017-01-18 20:30 ` [Qemu-devel] [PATCH 2/4] compiler: drop ; after BUILD_BUG_ON Michael S. Tsirkin
2017-01-18 20:30 ` [Qemu-devel] [PATCH 3/4] compiler: expression version of QEMU_BUILD_BUG_ON Michael S. Tsirkin
2017-01-19 11:29 ` Dr. David Alan Gilbert [this message]
2017-01-18 20:30 ` [Qemu-devel] [PATCH 4/4] ARRAY_SIZE: check that argument is an array Michael S. Tsirkin
2017-01-18 20:40 ` [Qemu-devel] [PATCH 0/4] virtio: ARRAY_SIZE fixups no-reply
2017-01-18 20:55 ` Michael S. Tsirkin
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=20170119112949.GD2085@work-vm \
--to=dgilbert@redhat.com \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=rth@twiddle.net \
/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.