[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 1/1] added configure check for _Static_assert an
From: |
Eric Blake |
Subject: |
Re: [Qemu-devel] [PATCH 1/1] added configure check for _Static_assert and updated QEMU_BUILD_BUG_ON(...) accordingly |
Date: |
Tue, 14 Mar 2017 10:08:36 -0500 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 |
On 03/14/2017 09:44 AM, Andreas Grapentin wrote:
> ---
Missing a Signed-off-by, so you'll need to send a v2 before we can apply it.
Subject line is long; I suggest shortening it to something like:
build: use _Static_assert in QEMU_BUILD_BUG_ON
then going into details in the rest of the commit body (see also my
comments on your 0/1 mail about content that should have been on this
commit).
> configure | 18 ++++++++++++++++++
> include/qemu/compiler.h | 4 +++-
> 2 files changed, 21 insertions(+), 1 deletion(-)
>
> diff --git a/configure b/configure
> index 75c7c3526c..e9b33d9cf8 100755
> --- a/configure
> +++ b/configure
> @@ -4725,6 +4725,20 @@ if compile_prog "" "" ; then
> fi
>
> ##########################################
> +# check for _Static_assert()
> +
> +have_static_assert=no
> +cat > $TMPC << EOF
> +_Static_assert(1, "success.");
trailing dot looks awkward; the test is the same if you omit it.
> +++ b/include/qemu/compiler.h
> @@ -90,7 +90,9 @@
> int:(x) ? -1 : 1; \
> }
>
> -#ifdef __COUNTER__
> +#if defined(CONFIG_STATIC_ASSERT)
> +#define QEMU_BUILD_BUG_ON(x) _Static_assert(!(x), #x)
Should we add any explanatory text in addition to just the expression
being tested? For example:
block/raw-format.c: QEMU_BUILD_BUG_ON(BDRV_SECTOR_SIZE != 512);
A message of "static assertion failed: BDRV_SECTOR_SIZE != 512" is
tricky: it can only trip if the sector size was not 512, but normally
when I see a _Static_assert message, I assume that I should fix my code
to make the expression true, and the expression printed is already true.
Maybe _Static_assert(!(x), "not expecting " #x) is better, because it
would give a message of "static assertion failed: not expecting
BDRV_SECTOR_SIZE != 512".
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature