From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50389) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bXU0f-0003Pl-Qv for qemu-devel@nongnu.org; Wed, 10 Aug 2016 09:57:31 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bXU0e-00087Q-SF for qemu-devel@nongnu.org; Wed, 10 Aug 2016 09:57:29 -0400 Received: from mail-wm0-x241.google.com ([2a00:1450:400c:c09::241]:33775) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bXU0e-00087J-Lo for qemu-devel@nongnu.org; Wed, 10 Aug 2016 09:57:28 -0400 Received: by mail-wm0-x241.google.com with SMTP id o80so9707933wme.0 for ; Wed, 10 Aug 2016 06:57:28 -0700 (PDT) Sender: Paolo Bonzini From: Paolo Bonzini Date: Wed, 10 Aug 2016 15:57:09 +0200 Message-Id: <1470837437-14713-7-git-send-email-pbonzini@redhat.com> In-Reply-To: <1470837437-14713-1-git-send-email-pbonzini@redhat.com> References: <1470837437-14713-1-git-send-email-pbonzini@redhat.com> Subject: [Qemu-devel] [PULL 06/14] Disable warn about left shifts of negative values List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Pranith Kumar , Peter Maydell , Markus Armbruster , Laszlo Ersek From: Pranith Kumar 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 Cc: Markus Armbruster Cc: Laszlo Ersek Signed-off-by: Paolo Bonzini [pranith: forward-port part of patch to 2.7] Signed-off-by: Pranith Kumar --- HACKING | 4 ++++ configure | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/HACKING b/HACKING index 058aa8f..20a9101 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 f57fcc6..8d84919 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 -- 1.8.3.1