OSDN Git Service

build: Don't redefine 'inline'
authorEric Blake <eblake@redhat.com>
Tue, 9 Feb 2016 18:49:48 +0000 (11:49 -0700)
committerPaolo Bonzini <pbonzini@redhat.com>
Tue, 16 Feb 2016 08:27:59 +0000 (09:27 +0100)
commitb11d029b0a093e31ae13e4fade03c7848e8af169
treeebb44d74b1a7a510a79c1878e9c7b1378714398b
parente046fb449947a48e013bf25d806ecb60e5a88319
build: Don't redefine 'inline'

Actively redefining 'inline' is wrong for C++, where gcc has an
extension 'inline namespace' which fails to compile if the
keyword 'inline' is replaced by a macro expansion.  This will
matter once we start to include "qemu/osdep.h" first from C++
files, depending also on whether the system headers are new
enough to be using the gcc extension.

But rather than just guard things by __cplusplus, let's look at
the overall picture.  Commit df2542c737ea2 in 2007 defined 'inline'
to the gcc attribute __always_inline__, with the rationale "To
avoid discarded inlining bug".  But compilers have improved since
then, and we are probably better off trusting the compiler rather
than trying to force its hand.

So just nuke our craziness.

Signed-off-by: Eric Blake <eblake@redhat.com>
Message-Id: <1455043788-28112-1-git-send-email-eblake@redhat.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
include/qemu/compiler.h