]> git.proxmox.com Git - mirror_qemu.git/commitdiff
Disable warn about left shifts of negative values
authorPranith Kumar <bobby.prani@gmail.com>
Tue, 9 Aug 2016 19:02:26 +0000 (15:02 -0400)
committerPaolo Bonzini <pbonzini@redhat.com>
Tue, 9 Aug 2016 20:57:36 +0000 (22:57 +0200)
It seems like there's no good reason for the compiler to exploit the
undefinedness of left shifts.  GCC explicitly documents that they do not
use at all this possibility and, while they also say this is subject
to change, they have been saying this for 10 years (since the wording
appeared in the GCC 4.0 manual).

Disable these warnings by passing in -Wno-shift-negative-value.

Cc: Peter Maydell <peter.maydell@linaro.org>
Cc: Markus Armbruster <armbru@redhat.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
[pranith: forward-port part of patch to 2.7]
Signed-off-by: Pranith Kumar <bobby.prani@gmail.com>
HACKING
configure

diff --git a/HACKING b/HACKING
index 058aa8fd491243cc1838f0d2ab759afc4b0453d1..20a910168d2a3d21214e6d4c65b9e8cc51ca6e50 100644 (file)
--- a/HACKING
+++ b/HACKING
@@ -158,6 +158,10 @@ painful. These are:
  * you may assume that right shift of a signed integer duplicates
    the sign bit (ie it is an arithmetic shift, not a logical shift)
 
+In addition, QEMU assumes that the compiler does not use the latitude
+given in C99 and C11 to treat aspects of signed '<<' as undefined, as
+documented in the GNU Compiler Collection manual starting at version 4.0.
+
 7. Error handling and reporting
 
 7.1 Reporting errors to the human user
index f57fcc689dd8b6cbf8dc0ff1276348b6fe3c14cc..8d849191db6abd98029f1998827feabfd9f182a9 100755 (executable)
--- a/configure
+++ b/configure
@@ -1452,7 +1452,7 @@ fi
 gcc_flags="-Wold-style-declaration -Wold-style-definition -Wtype-limits"
 gcc_flags="-Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers $gcc_flags"
 gcc_flags="-Wmissing-include-dirs -Wempty-body -Wnested-externs $gcc_flags"
-gcc_flags="-Wendif-labels $gcc_flags"
+gcc_flags="-Wendif-labels -Wno-shift-negative-value $gcc_flags"
 gcc_flags="-Wno-initializer-overrides $gcc_flags"
 gcc_flags="-Wno-string-plus-int $gcc_flags"
 # Note that we do not add -Werror to gcc_flags here, because that would