summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPranith Kumar <bobby.prani@gmail.com>2016-08-09 15:02:26 -0400
committerPaolo Bonzini <pbonzini@redhat.com>2016-08-09 22:57:36 +0200
commit435405ac59b9334b06285e1192c693b497282a31 (patch)
treecc139787bf0332a446108b023b0e894e1e1717c9
parent5927ed846ad17e1cc8e9f60f50486ec418829776 (diff)
downloadqemu-435405ac59b9334b06285e1192c693b497282a31.tar.gz
Disable warn about left shifts of negative values
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>
-rw-r--r--HACKING4
-rwxr-xr-xconfigure2
2 files changed, 5 insertions, 1 deletions
diff --git a/HACKING b/HACKING
index 058aa8fd49..20a910168d 100644
--- 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
diff --git a/configure b/configure
index f57fcc689d..8d849191db 100755
--- 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