qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] rewrite QEMU_BUILD_BUG_ON


From: Dong Xu Wang
Subject: Re: [Qemu-devel] [PATCH] rewrite QEMU_BUILD_BUG_ON
Date: Tue, 20 Dec 2011 18:47:47 +0800
User-agent: Mozilla/5.0 (X11; Linux i686; rv:8.0) Gecko/20111124 Thunderbird/8.0

于 2011年12月20日 18:13, Stefan Hajnoczi 写道:
On Tue, Dec 20, 2011 at 05:03:47PM +0800, Dong Xu Wang wrote:
From: Dong Xu Wang<address@hidden>

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.

Can you post the gcc -E output of the file that produces the error as
well as the gcc error output?

Stefan



I doubled the following lines in block/qcow2-snapshot.c(line 211 and 212):

QEMU_BUILD_BUG_ON(offsetof(QCowHeader, snapshots_offset) !=
offsetof(QCowHeader, nb_snapshots) + sizeof(header_data.nb_snapshots));"


While "gcc -E -C -I. block/qcow2-snapshot.c", I can get:
typedef char
 qemu_build_bug_on____LINE__
# 241 "block/qcow2-snapshot.c"
[(__builtin_offsetof (QCowHeader, snapshots_offset) != __builtin_offsetof (QCowHeader, nb_snapshots) + sizeof(header_data.nb_snapshots))?-1:1];

       ;
  typedef char
 qemu_build_bug_on____LINE__
# 243 "block/qcow2-snapshot.c"
[(__builtin_offsetof (QCowHeader, snapshots_offset) != __builtin_offsetof (QCowHeader, nb_snapshots) + sizeof(header_data.nb_snapshots))?-1:1];

__LINE__ are not expanded to real line number.



While normally compiling, error message is:
  CC    block/qcow2-snapshot.o
block/qcow2-snapshot.c: In function \u2018qcow2_write_snapshots\u2019:
block/qcow2-snapshot.c:244: error: redefinition of typedef \u2018qemu_build_bug_on____LINE__\u2019 block/qcow2-snapshot.c:242: note: previous declaration of \u2018qemu_build_bug_on____LINE__\u2019 was here
make: *** [block/qcow2-snapshot.o] Error 1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]