]> granicus.if.org Git - python/commitdiff
Issue #24324: Do not enable unreachable code warnings when using
authorNed Deily <nad@python.org>
Tue, 8 Mar 2016 05:28:37 +0000 (00:28 -0500)
committerNed Deily <nad@python.org>
Tue, 8 Mar 2016 05:28:37 +0000 (00:28 -0500)
gcc as the option does not work correctly in older versions of gcc
and has been silently removed as of gcc-4.5.

Misc/NEWS
aclocal.m4
configure
configure.ac

index 81c7dc8c6dee7435daa4e788634b3fb5a9b0cc80..a4ac927354ae6a881282f3e2c193330f4dcf8e4a 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -310,6 +310,10 @@ Build
 
 - Issue #25136: Support Apple Xcode 7's new textual SDK stub libraries.
 
+- Issue #24324: Do not enable unreachable code warnings when using
+  gcc as the option does not work correctly in older versions of gcc
+  and has been silently removed as of gcc-4.5.
+
 Windows
 -------
 
index 7d25fb925389cb0c916ba0f7a6b9a812c91a8beb..1f0e6f485c9beac14bdeebd8653ce1bac22a48c4 100644 (file)
@@ -1,6 +1,6 @@
-# generated automatically by aclocal 1.14.1 -*- Autoconf -*-
+# generated automatically by aclocal 1.15 -*- Autoconf -*-
 
-# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+# Copyright (C) 1996-2014 Free Software Foundation, Inc.
 
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
index 43bf0f3fbc5ca53af0145ca6e26cd426687b5255..a4847c37e3226f3f6aaf09af62eabeed87c123b8 100755 (executable)
--- a/configure
+++ b/configure
@@ -6963,15 +6963,24 @@ fi
 
      CFLAGS="$save_CFLAGS"
      CC="$ac_save_cc"
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_enable_unreachable_code_warning" >&5
-$as_echo "$ac_cv_enable_unreachable_code_warning" >&6; }
 
     # Don't enable unreachable code warning in debug mode, since it usually
     # results in non-standard code paths.
-    if test $ac_cv_enable_unreachable_code_warning = yes && test "$Py_DEBUG" != "true"
+    # Issue #24324: Unfortunately, the unreachable code warning does not work
+    # correctly on gcc and has been silently removed from the compiler.
+    # It is supported on clang but on OS X systems gcc may be an alias
+    # for clang.  Try to determine if the compiler is not really gcc and,
+    # if so, only then enable the warning.
+    if test $ac_cv_enable_unreachable_code_warning = yes && \
+        test "$Py_DEBUG" != "true" && \
+        test -z "`$CC --version 2>/dev/null | grep 'Free Software Foundation'`"
     then
       BASECFLAGS="$BASECFLAGS -Wunreachable-code"
+    else
+      ac_cv_enable_unreachable_code_warning=no
     fi
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_enable_unreachable_code_warning" >&5
+$as_echo "$ac_cv_enable_unreachable_code_warning" >&6; }
 
     # if using gcc on alpha, use -mieee to get (near) full IEEE 754
     # support.  Without this, treatment of subnormals doesn't follow
index 94632f2645993ec728f5b9f8f48f113c3a792703..bacb7b06a1d962ded8c17c78b9c0b52eeaae6575 100644 (file)
@@ -1483,14 +1483,23 @@ yes)
         ]))
      CFLAGS="$save_CFLAGS"
      CC="$ac_save_cc"
-    AC_MSG_RESULT($ac_cv_enable_unreachable_code_warning)
 
     # Don't enable unreachable code warning in debug mode, since it usually
     # results in non-standard code paths.
-    if test $ac_cv_enable_unreachable_code_warning = yes && test "$Py_DEBUG" != "true"
+    # Issue #24324: Unfortunately, the unreachable code warning does not work
+    # correctly on gcc and has been silently removed from the compiler.
+    # It is supported on clang but on OS X systems gcc may be an alias
+    # for clang.  Try to determine if the compiler is not really gcc and,
+    # if so, only then enable the warning.
+    if test $ac_cv_enable_unreachable_code_warning = yes && \
+        test "$Py_DEBUG" != "true" && \
+        test -z "`$CC --version 2>/dev/null | grep 'Free Software Foundation'`"
     then
       BASECFLAGS="$BASECFLAGS -Wunreachable-code"
+    else
+      ac_cv_enable_unreachable_code_warning=no
     fi
+    AC_MSG_RESULT($ac_cv_enable_unreachable_code_warning)
 
     # if using gcc on alpha, use -mieee to get (near) full IEEE 754
     # support.  Without this, treatment of subnormals doesn't follow