qemu-e2k/include/qemu
Zenghui Yu b59ea3640c compiler.h: Don't use compile-time assert when __NO_INLINE__ is defined
Our robot reported the following compile-time warning while compiling
Qemu with -fno-inline cflags:

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
         qemu_build_not_reached();
         ^~~~~~~~~~~~~~~~~~~~~~~~
    [...]

It looks like a false-positive because only (MO_UB ^ MO_BSWAP) will
hit the default case in load_memop() while need_swap (size > 1) has
already ensured that MO_UB is not involved.

So the thing is that compilers get confused by the -fno-inline and
just can't accurately evaluate memop_size(op) at compile time, and
then the qemu_build_not_reached() is wrongly triggered by (MO_UB ^
MO_BSWAP).  Let's carefully don't use the compile-time assert when
no functions will be inlined into their callers.

Reported-by: Euler Robot <euler.robot@huawei.com>
Suggested-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Zenghui Yu <yuzenghui@huawei.com>
Message-Id: <20200205141545.180-1-yuzenghui@huawei.com>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
2020-02-28 10:58:41 -08:00
..
atomic128.h include: Make headers more self-contained 2019-08-16 13:31:51 +02:00
atomic.h include/qemu/atomic.h: Add signal_barrier 2019-07-14 12:19:00 +02:00
base64.h Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
bcd.h
bitmap.h bitmap: Add bitmap_copy_with_{src|dst}_offset() 2019-07-15 15:39:02 +02:00
bitops.h qemu/bitops.h: Add extract8 and extract16 2020-02-25 20:20:23 +00:00
bswap.h
buffer.h Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
co-shared-resource.h util: introduce SharedResource 2019-10-28 11:22:31 +01:00
compiler.h compiler.h: Don't use compile-time assert when __NO_INLINE__ is defined 2020-02-28 10:58:41 -08:00
config-file.h
coroutine_int.h
coroutine.h coroutine: Add qemu_co_mutex_assert_locked() 2019-10-25 15:18:38 +02:00
cpuid.h
crc32c.h Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
ctype.h
cutils.h Memory: Enable writeback for given memory region 2019-12-16 10:46:35 +00:00
dbus.h util: add dbus helper unit 2020-01-06 18:41:32 +04:00
drm.h
envlist.h
error-report.h error: Fix -msg timestamp default 2019-12-18 08:36:15 +01:00
event_notifier.h Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
fifo8.h Include migration/vmstate.h less 2019-08-16 13:31:52 +02:00
fifo32.h
filemonitor.h Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
futex.h
guest-random.h
hbitmap.h util/hbitmap: strict hbitmap_reset 2019-10-17 17:02:32 -04:00
help_option.h
host-utils.h
id.h chardev: generate an internal id when none given 2020-01-07 16:50:09 +04:00
int128.h
iov.h block/qcow2: implement .bdrv_co_pwritev(_compressed)_part 2019-08-27 14:58:42 +01:00
iova-tree.h
jhash.h
job.h job: drop job_drain 2019-09-10 08:58:43 +02:00
lockable.h
log-for-trace.h
log.h linux-user: Use `qemu_log' for strace 2020-02-19 11:17:40 +01:00
main-loop.h Wrapper function to wait on condition for the main loop mutex 2020-02-03 11:33:10 +11:00
memfd.h linux-user: add memfd_create 2019-09-11 08:46:17 +02:00
mmap-alloc.h Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
module.h migration: Add support for modules 2020-02-28 09:24:43 +01:00
notify.h xen / notify: introduce a new XenWatchList abstraction 2019-09-24 12:18:47 +01:00
nvdimm-utils.h mem: move nvdimm_device_list to utilities 2020-02-21 09:15:03 +11:00
option_int.h
option.h
osdep.h osdep: add qemu_unlink() 2020-01-02 16:29:32 +04:00
path.h
plugin-memory.h plugins: implement helpers for resolving hwaddr 2019-10-28 15:12:38 +00:00
plugin.h plugin: add core code 2019-10-28 15:12:38 +00:00
pmem.h
processor.h
qdist.h Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
qemu-plugin.h tcg plugins: expose an API version concept 2019-11-12 14:32:55 +00:00
qemu-print.h
qht.h
qsp.h
queue.h aio-posix: make AioHandler deletion O(1) 2020-02-22 08:26:47 +00:00
range.h Include qemu/queue.h slightly less 2019-08-16 13:31:52 +02:00
ratelimit.h include: Make headers more self-contained 2019-08-16 13:31:51 +02:00
rcu_queue.h rcu_queue: add QSLIST functions 2020-02-22 08:26:47 +00:00
rcu.h rcu: Add automatically released rcu_read_lock variants 2019-10-11 14:19:49 +01:00
readline.h
seqlock.h seqlock: fix seqlock_write_unlock_impl function 2020-02-12 16:23:01 +01:00
sockets.h socket: Add backlog parameter to socket_listen 2019-09-03 23:24:42 +02:00
stats64.h
sys_membarrier.h
systemd.h
thread-posix.h
thread-win32.h include: Make headers more self-contained 2019-08-16 13:31:51 +02:00
thread.h qemu-thread: Add qemu_cond_timedwait 2019-09-16 17:13:06 +02:00
throttle-options.h
throttle.h Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
timed-average.h
timer.h Remove support for CLOCK_MONOTONIC not being defined 2020-02-12 16:23:01 +01:00
typedefs.h sysemu: Move the VMChangeStateEntry typedef to qemu/typedefs.h 2019-08-16 13:31:53 +02:00
unicode.h
units.h
uri.h
uuid.h Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
vfio-helpers.h
win_dump_defs.h
xattr.h
xxhash.h