unicorn/qemu
Peter Maydell eb77f61bea
configure: Always compile with -fwrapv
QEMU's code relies on left shifts of signed integers always
being defined behaviour with the obvious 2s-complement
semantics. The only way to tell the compiler (and any
associated undefined-behaviour sanitizer) that we require a
C dialect with these semantics is to use the -fwrapv option.
This is a bit of a heavy hammer for the job as it also gives
us guaranteed semantics on integer arithmetic overflow which
in theory we don't require.

In an ideal world this would allow us to drop the warning
flag -Wno-shift-negative-value, but we must retain this to
avoid spurious warnings on clang versions predating the
fix to https://llvm.org/bugs/show_bug.cgi?id=25552.

Backports commit 2d31515bc0880a1cea86ce638d2a109f4f4e6f7d from qemu
2018-02-25 23:17:41 -05:00
..
crypto crypto: Clean up includes 2018-02-19 00:47:40 -05:00
default-configs arm64eb: add support for ARM64 big endian. 2017-04-24 23:30:01 +08:00
docs docs: clarify memory region lifecycle 2018-02-12 15:11:21 -05:00
fpu softfloat: Fix warn about implicit conversion from int to int8_t 2018-02-25 22:54:39 -05:00
hw qdev: Fix object reference leak in case device.realize() fails 2018-02-25 21:00:26 -05:00
include glib_compat: Amend header guard 2018-02-25 23:12:20 -05:00
qapi qapi: change QmpInputVisitor to QSLIST 2018-02-25 20:02:09 -05:00
qobject util: move declarations out of qemu-common.h 2018-02-22 09:25:48 -05:00
qom qapi: Add new visit_complete() function 2018-02-25 01:20:03 -05:00
scripts qapi: Implement boxed types for commands/events 2018-02-25 20:22:03 -05:00
target-arm target-arm: Fix lpae bit in FSR on an alignment fault 2018-02-25 23:10:29 -05:00
target-i386 target-i386: present virtual L3 cache info for vcpus 2018-02-25 23:16:14 -05:00
target-m68k tcg: Reorg TCGOp chaining 2018-02-25 21:44:50 -05:00
target-mips target-mips: Silence unused function warning 2018-02-25 21:47:22 -05:00
target-sparc tcg: Reorg TCGOp chaining 2018-02-25 21:44:50 -05:00
tcg tcg: Lower indirect registers in a separate pass 2018-02-25 22:32:28 -05:00
util util: Move qemu-log to utils 2018-02-25 22:17:44 -05:00
aarch64.h memory: Replace skip_dump flag with ram_device 2018-02-25 23:00:45 -05:00
aarch64eb.h memory: Replace skip_dump flag with ram_device 2018-02-25 23:00:45 -05:00
accel.c accel: make configure_accelerator return void 2018-02-24 00:31:28 -05:00
arm.h memory: Replace skip_dump flag with ram_device 2018-02-25 23:00:45 -05:00
armeb.h memory: Replace skip_dump flag with ram_device 2018-02-25 23:00:45 -05:00
CODING_STYLE import 2015-08-21 15:04:50 +08:00
configure configure: Always compile with -fwrapv 2018-02-25 23:17:41 -05:00
COPYING import 2015-08-21 15:04:50 +08:00
COPYING.LIB import 2015-08-21 15:04:50 +08:00
cpu-exec-common.c cpu-exec: Rename cpu_resume_from_signal() to cpu_loop_exit_noexc() 2018-02-24 17:25:28 -05:00
cpu-exec.c tb hash: hash phys_pc, pc, and flags with xxhash 2018-02-24 18:00:14 -05:00
cpus.c cpu: move exec-all.h inclusion out of cpu.h 2018-02-24 02:39:08 -05:00
cputlb.c cputlb: Add address parameter to VICTIM_TLB_HIT 2018-02-25 03:03:36 -05:00
exec.c exec: avoid realloc in phys_map_node_reserve 2018-02-25 19:32:40 -05:00
gen_all_header.sh arm64eb: add support for ARM64 big endian. 2017-04-24 23:30:01 +08:00
glib_compat.c qapi: Fix memleak in string visitors on int lists 2018-02-25 00:20:34 -05:00
HACKING import 2015-08-21 15:04:50 +08:00
header_gen.py memory: Replace skip_dump flag with ram_device 2018-02-25 23:00:45 -05:00
ioport.c hw: remove pio_addr_t 2018-02-24 02:43:16 -05:00
LICENSE import 2015-08-21 15:04:50 +08:00
m68k.h memory: Replace skip_dump flag with ram_device 2018-02-25 23:00:45 -05:00
Makefile Makefile: Add a FORCE target 2018-02-24 17:03:51 -05:00
Makefile.objs util: Move qemu-log to utils 2018-02-25 22:17:44 -05:00
Makefile.target tcg: split tcg_op_defs to -common 2018-02-17 15:23:51 -05:00
memory.c memory: Don't use memcpy for ram_device regions 2018-02-25 23:06:36 -05:00
memory_mapping.c include/qemu/osdep.h: Don't include qapi/error.h 2018-02-21 23:08:18 -05:00
mips.h memory: Replace skip_dump flag with ram_device 2018-02-25 23:00:45 -05:00
mips64.h memory: Replace skip_dump flag with ram_device 2018-02-25 23:00:45 -05:00
mips64el.h memory: Replace skip_dump flag with ram_device 2018-02-25 23:00:45 -05:00
mipsel.h memory: Replace skip_dump flag with ram_device 2018-02-25 23:00:45 -05:00
powerpc.h memory: Replace skip_dump flag with ram_device 2018-02-25 23:00:45 -05:00
qapi-schema.json qapi: Lazy creation of array types 2018-02-19 18:55:35 -05:00
qemu-timer.c all: Clean up includes 2018-02-19 01:34:28 -05:00
rules.mak Makefile: add dependency on scripts/create_config 2018-02-24 17:05:03 -05:00
softmmu_template.h cputlb: Fix for self-modifying writes across page boundaries 2018-02-25 03:12:11 -05:00
sparc.h memory: Replace skip_dump flag with ram_device 2018-02-25 23:00:45 -05:00
sparc64.h memory: Replace skip_dump flag with ram_device 2018-02-25 23:00:45 -05:00
tcg-runtime.c all: Clean up includes 2018-02-19 01:34:28 -05:00
translate-all.c translate-all: Fix user-mode self-modifying code in 2 page long TB 2018-02-25 03:14:22 -05:00
translate-all.h user-exec: Push resume-from-signal code out to handle_cpu_signal() 2018-02-24 17:21:06 -05:00
translate-common.c exec: Clean up includes 2018-02-19 00:49:55 -05:00
unicorn_common.h qom/cpu: Add MemoryRegion property 2018-02-18 21:54:50 -05:00
VERSION import 2015-08-21 15:04:50 +08:00
vl.c hw: explicitly include qemu/log.h 2018-02-24 02:00:45 -05:00
vl.h import 2015-08-21 15:04:50 +08:00
x86_64.h memory: Replace skip_dump flag with ram_device 2018-02-25 23:00:45 -05:00