[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] memory: Use QEMU_ALWAYS_INLINE to silence compile-time warni
Re: [PATCH] memory: Use QEMU_ALWAYS_INLINE to silence compile-time warning
Wed, 5 Feb 2020 21:47:07 +0800
Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.2.0
On 2020/2/5 18:31, Richard Henderson wrote:
On 2/5/20 10:01 AM, Richard Henderson wrote:
On 2/5/20 8:17 AM, Zenghui Yu wrote:
Our robot reported the following compile-time warning while compiling
Qemu with -fno-inline cflags:
Why are you doing this?
I'm not sure why it was added in the building test. As you said,
there's just a arbitrary combination of compile flags.
In function 'load_memop',
inlined from 'load_helper' at /qemu/accel/tcg/cputlb.c:1578:20,
inlined from 'full_ldub_mmu' at /qemu/accel/tcg/cputlb.c:1624:12:
/qemu/accel/tcg/cputlb.c:1502:9: error: call to 'qemu_build_not_reached'
declared with attribute error: code path is reachable
Of course, the assert is compiled out when optimization is off, which is the
only time we expect inlining to be off.
The patch isn't wrong, exactly, but I question whether we want to support
completely arbitrary combinations of compile flags.
It doesn't hurt to do the right thing, and you already have the
good approach :)
To follow up: if you *really* need to support -fno-inline, then perhaps the
correct patch is to change
- #ifdef __OPTIMIZE__
+ #if defined(__OPTIMIZE__) && !defined(__NO_INLINE__)
extern void QEMU_NORETURN QEMU_ERROR("code path is reachable")
#define qemu_build_not_reached() g_assert_not_reached()
Thanks for this. I've tested it with -fno-inlie and it indeed works.
I will send it as v2.