From: Dong Xu Wang <wdon...@linux.vnet.ibm.com> On some platforms, __LINE__ will not expand to real number in QEMU_BUILD_BUG_ON, so if using QEMU_BUILD_BUG_ON twice, compiler will report errors. This patch will fix it.
BTW, I got error message on RHEL 6.1/gcc 4.4.5. Signed-off-by: Dong Xu Wang <wdon...@linux.vnet.ibm.com> Signed-off-by: Kevin Wolf <kw...@redhat.com> --- compiler.h | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-) diff --git a/compiler.h b/compiler.h index a1c0794..736e770 100644 --- a/compiler.h +++ b/compiler.h @@ -30,8 +30,10 @@ # define QEMU_PACKED __attribute__((packed)) #endif +#define cat(x,y) x ## y +#define cat2(x,y) cat(x,y) #define QEMU_BUILD_BUG_ON(x) \ - typedef char qemu_build_bug_on__##__LINE__[(x)?-1:1]; + typedef char cat2(qemu_build_bug_on__,__LINE__)[(x)?-1:1]; #if defined __GNUC__ # if !QEMU_GNUC_PREREQ(4, 4) -- 1.7.6.5