Re: [Qemu-devel] [PATCH v2 3/4] compiler: expression version of QEMU_BUILD_BUG_ON

2017-01-20 Thread Michael S. Tsirkin
On Fri, Jan 20, 2017 at 08:21:28AM +0100, Markus Armbruster wrote: > "Michael S. Tsirkin" writes: > > > On Thu, Jan 19, 2017 at 02:33:40PM +0100, Markus Armbruster wrote: > >> Paolo Bonzini writes: > >> > >> > On 19/01/2017 09:12, Markus Armbruster wrote: > >> >> "Michael S. Tsirkin" writes: >

Re: [Qemu-devel] [PATCH v2 3/4] compiler: expression version of QEMU_BUILD_BUG_ON

2017-01-19 Thread Markus Armbruster
"Michael S. Tsirkin" writes: > On Thu, Jan 19, 2017 at 02:33:40PM +0100, Markus Armbruster wrote: >> Paolo Bonzini writes: >> >> > On 19/01/2017 09:12, Markus Armbruster wrote: >> >> "Michael S. Tsirkin" writes: >> >> >> >>> QEMU_BUILD_BUG_ON uses a typedef in order to be safe >> >>> to use o

Re: [Qemu-devel] [PATCH v2 3/4] compiler: expression version of QEMU_BUILD_BUG_ON

2017-01-19 Thread Michael S. Tsirkin
On Thu, Jan 19, 2017 at 02:58:48PM -0600, Eric Blake wrote: > On 01/19/2017 01:25 PM, Michael S. Tsirkin wrote: > > > +#define QEMU_BUILD_BUG_ON_ZERO(x) (sizeof(int[(x) ? -1 : 1]) - > > sizeof(int)) > >>> > >>> Linux here uses: > >>> > >>> #define BUILD_BUG_ON_ZERO(e) (sizeof(struct { int

Re: [Qemu-devel] [PATCH v2 3/4] compiler: expression version of QEMU_BUILD_BUG_ON

2017-01-19 Thread Michael S. Tsirkin
On Thu, Jan 19, 2017 at 02:33:40PM +0100, Markus Armbruster wrote: > Paolo Bonzini writes: > > > On 19/01/2017 09:12, Markus Armbruster wrote: > >> "Michael S. Tsirkin" writes: > >> > >>> QEMU_BUILD_BUG_ON uses a typedef in order to be safe > >>> to use outside functions, but sometimes it's use

Re: [Qemu-devel] [PATCH v2 3/4] compiler: expression version of QEMU_BUILD_BUG_ON

2017-01-19 Thread Eric Blake
On 01/19/2017 01:25 PM, Michael S. Tsirkin wrote: > +#define QEMU_BUILD_BUG_ON_ZERO(x) (sizeof(int[(x) ? -1 : 1]) - > sizeof(int)) >>> >>> Linux here uses: >>> >>> #define BUILD_BUG_ON_ZERO(e) (sizeof(struct { int:-!!(e); })) >>> >>> and the issue is that sizeof(int[(x) ? -1 : 1]) could b

Re: [Qemu-devel] [PATCH v2 3/4] compiler: expression version of QEMU_BUILD_BUG_ON

2017-01-19 Thread Michael S. Tsirkin
On Thu, Jan 19, 2017 at 02:33:40PM +0100, Markus Armbruster wrote: > Paolo Bonzini writes: > > > On 19/01/2017 09:12, Markus Armbruster wrote: > >> "Michael S. Tsirkin" writes: > >> > >>> QEMU_BUILD_BUG_ON uses a typedef in order to be safe > >>> to use outside functions, but sometimes it's use

Re: [Qemu-devel] [PATCH v2 3/4] compiler: expression version of QEMU_BUILD_BUG_ON

2017-01-19 Thread Markus Armbruster
Paolo Bonzini writes: > On 19/01/2017 09:12, Markus Armbruster wrote: >> "Michael S. Tsirkin" writes: >> >>> 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 wh

Re: [Qemu-devel] [PATCH v2 3/4] compiler: expression version of QEMU_BUILD_BUG_ON

2017-01-19 Thread Paolo Bonzini
On 19/01/2017 09:12, Markus Armbruster wrote: > "Michael S. Tsirkin" writes: > >> 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_

Re: [Qemu-devel] [PATCH v2 3/4] compiler: expression version of QEMU_BUILD_BUG_ON

2017-01-19 Thread Markus Armbruster
"Michael S. Tsirkin" writes: > 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 cond

[Qemu-devel] [PATCH v2 3/4] compiler: expression version of QEMU_BUILD_BUG_ON

2017-01-18 Thread Michael S. Tsirkin
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: Mich