configure: Always compile with -fwrapv
authorPeter Maydell <peter.maydell@linaro.org>
Mon, 12 Sep 2016 13:10:08 +0000 (14:10 +0100)
committerPeter Maydell <peter.maydell@linaro.org>
Tue, 13 Sep 2016 14:34:17 +0000 (15:34 +0100)
commit2d31515bc0880a1cea86ce638d2a109f4f4e6f7d
tree4f91fdf1fe6cec0f9294d6d8013e556f16d87676
parent4dfbe3767af503a4cd137b15c8a9d8f30b20a6e9
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.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Message-id: 1473685808-9629-1-git-send-email-peter.maydell@linaro.org
configure