]> granicus.if.org Git - python/commitdiff
test that the compiler support -Werror=statement-after-declaration before using it
authorBenjamin Peterson <benjamin@python.org>
Mon, 20 May 2013 15:22:04 +0000 (08:22 -0700)
committerBenjamin Peterson <benjamin@python.org>
Mon, 20 May 2013 15:22:04 +0000 (08:22 -0700)
configure
configure.ac

index 37c51cc42ae2cea11c03e6942e36a25165592c88..80cce1c7bf665775a3640aaf21a5fa7b4f4ae81c 100755 (executable)
--- a/configure
+++ b/configure
@@ -6264,8 +6264,6 @@ UNIVERSAL_ARCH_FLAGS=
 # tweak BASECFLAGS based on compiler and platform
 case $GCC in
 yes)
-    BASECFLAGS="$BASECFLAGS -Werror=declaration-after-statement"
-
     # Python doesn't violate C99 aliasing rules, but older versions of
     # GCC produce warnings for legal Python code.  Enable
     # -fno-strict-aliasing on versions of GCC that support but produce
@@ -6379,6 +6377,49 @@ $as_echo "$ac_cv_disable_unused_result_warning" >&6; }
       BASECFLAGS="$BASECFLAGS -Wno-unused-result"
     fi
 
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -Werror=declaration-after-statement" >&5
+$as_echo_n "checking for -Werror=declaration-after-statement... " >&6; }
+     ac_save_cc="$CC"
+     CC="$CC -Werror=declaration-after-statement"
+     save_CFLAGS="$CFLAGS"
+     if ${ac_cv_declaration_after_statement_warning+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+           ac_cv_declaration_after_statement_warning=yes
+
+else
+
+           ac_cv_declaration_after_statement_warning=no
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+     CFLAGS="$save_CFLAGS"
+     CC="$ac_save_cc"
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_declaration_after_statement_warning" >&5
+$as_echo "$ac_cv_declaration_after_statement_warning" >&6; }
+
+    if test $ac_cv_declaration_after_statement_warning = yes
+    then
+      BASECFLAGS="$BASECFLAGS -Werror=declaration-after-statement"
+    fi
+
     # if using gcc on alpha, use -mieee to get (near) full IEEE 754
     # support.  Without this, treatment of subnormals doesn't follow
     # the standard.
index 647de886005c00d1e06125921e17d12a8d797ed0..c9f54ddf47e37bd0fbf0d89aa25c29e5c171d696 100644 (file)
@@ -1127,8 +1127,6 @@ AC_SUBST(UNIVERSAL_ARCH_FLAGS)
 # tweak BASECFLAGS based on compiler and platform
 case $GCC in
 yes)
-    BASECFLAGS="$BASECFLAGS -Werror=declaration-after-statement"
-
     # Python doesn't violate C99 aliasing rules, but older versions of
     # GCC produce warnings for legal Python code.  Enable
     # -fno-strict-aliasing on versions of GCC that support but produce
@@ -1186,6 +1184,28 @@ yes)
       BASECFLAGS="$BASECFLAGS -Wno-unused-result"
     fi
 
+    AC_MSG_CHECKING(for -Werror=declaration-after-statement)
+     ac_save_cc="$CC"
+     CC="$CC -Werror=declaration-after-statement"
+     save_CFLAGS="$CFLAGS"
+     AC_CACHE_VAL(ac_cv_declaration_after_statement_warning,
+       AC_COMPILE_IFELSE(
+         [
+          AC_LANG_PROGRAM([[]], [[]])
+        ],[
+           ac_cv_declaration_after_statement_warning=yes
+        ],[
+           ac_cv_declaration_after_statement_warning=no
+        ]))
+     CFLAGS="$save_CFLAGS"
+     CC="$ac_save_cc"
+    AC_MSG_RESULT($ac_cv_declaration_after_statement_warning)
+
+    if test $ac_cv_declaration_after_statement_warning = yes
+    then
+      BASECFLAGS="$BASECFLAGS -Werror=declaration-after-statement"
+    fi
+
     # if using gcc on alpha, use -mieee to get (near) full IEEE 754
     # support.  Without this, treatment of subnormals doesn't follow
     # the standard.