[Top][All Lists]
[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