[Python-checkins] bpo-45723: Add macro for disabling/enabling CC warnings (GH-29466)

tiran webhook-mailer at python.org
Mon Nov 8 12:58:32 EST 2021


https://github.com/python/cpython/commit/9bd0cf5970997b63d296e30d51e7bb9a15dcabaf
commit: 9bd0cf5970997b63d296e30d51e7bb9a15dcabaf
branch: main
author: Erlend Egeberg Aasland <erlend.aasland at innova.no>
committer: tiran <christian at python.org>
date: 2021-11-08T18:58:22+01:00
summary:

bpo-45723: Add macro for disabling/enabling CC warnings (GH-29466)

Co-authored-by: Christian Heimes <christian at python.org>

files:
M configure
M configure.ac

diff --git a/configure b/configure
index 48d8bfd0899ff..207291850032b 100755
--- a/configure
+++ b/configure
@@ -7074,22 +7074,25 @@ fi
 UNIVERSAL_ARCH_FLAGS=
 
 
+
+
 # tweak BASECFLAGS based on compiler and platform
 case $GCC in
 yes)
     CFLAGS_NODIST="$CFLAGS_NODIST -std=c99"
 
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -Wextra" >&5
-$as_echo_n "checking for -Wextra... " >&6; }
-     ac_save_cc="$CC"
-     CC="$CC -Wextra -Werror"
-     if ${ac_cv_extra_warnings+:} false; then :
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can add -Wextra" >&5
+$as_echo_n "checking if we can add -Wextra... " >&6; }
+
+  py_cflags=$CFLAGS
+  CFLAGS="$CFLAGS -Wextra -Werror"
+  if ${ac_cv_enable_extra_warning+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
-
 int
 main ()
 {
@@ -7097,28 +7100,24 @@ main ()
   ;
   return 0;
 }
-
 _ACEOF
 if ac_fn_c_try_compile "$LINENO"; then :
-
-           ac_cv_extra_warnings=yes
-
+  ac_cv_enable_extra_warning=yes
 else
-
-           ac_cv_extra_warnings=no
-
+  ac_cv_enable_extra_warning=no
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
 fi
 
-     CC="$ac_save_cc"
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_extra_warnings" >&5
-$as_echo "$ac_cv_extra_warnings" >&6; }
+  CFLAGS=$py_cflags
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_enable_extra_warning" >&5
+$as_echo "$ac_cv_enable_extra_warning" >&6; }
 
-    if test $ac_cv_extra_warnings = yes
-    then
-      CFLAGS_NODIST="$CFLAGS_NODIST -Wextra"
-    fi
+
+    if test "x$ac_cv_enable_extra_warning" = xyes; then :
+  CFLAGS_NODIST="$CFLAGS_NODIST -Wextra"
+fi
 
     # Python doesn't violate C99 aliasing rules, but older versions of
     # GCC produce warnings for legal Python code.  Enable
@@ -7185,30 +7184,27 @@ fi
      CC="$ac_save_cc"
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_no_strict_aliasing" >&5
 $as_echo "$ac_cv_no_strict_aliasing" >&6; }
-    if test $ac_cv_no_strict_aliasing = yes
-    then
-      BASECFLAGS="$BASECFLAGS -fno-strict-aliasing"
-    fi
+    if test "x$ac_cv_no_strict_aliasing" = xyes; then :
+  BASECFLAGS="$BASECFLAGS -fno-strict-aliasing"
+fi
 
     # ICC doesn't recognize the option, but only emits a warning
     ## XXX does it emit an unused result warning and can it be disabled?
-    case "$CC" in
-    *icc*)
+    case $CC in #(
+  *icc*) :
     ac_cv_disable_unused_result_warning=no
-    ;;
-    *)
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can turn off $CC unused result warning" >&5
-$as_echo_n "checking if we can turn off $CC unused result warning... " >&6; }
-     ac_save_cc="$CC"
-     CC="$CC -Wunused-result -Werror"
-     save_CFLAGS="$CFLAGS"
-     if ${ac_cv_disable_unused_result_warning+:} false; then :
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can disable $CC unused-result warning" >&5
+$as_echo_n "checking if we can disable $CC unused-result warning... " >&6; }
+
+  py_cflags=$CFLAGS
+  CFLAGS="$CFLAGS -Wunused-result -Werror"
+  if ${ac_cv_disable_unused_result_warning+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
-
 int
 main ()
 {
@@ -7216,44 +7212,41 @@ main ()
   ;
   return 0;
 }
-
 _ACEOF
 if ac_fn_c_try_compile "$LINENO"; then :
-
-           ac_cv_disable_unused_result_warning=yes
-
+  ac_cv_disable_unused_result_warning=yes
 else
-
-           ac_cv_disable_unused_result_warning=no
-
+  ac_cv_disable_unused_result_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_disable_unused_result_warning" >&5
+  CFLAGS=$py_cflags
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_disable_unused_result_warning" >&5
 $as_echo "$ac_cv_disable_unused_result_warning" >&6; }
-    ;;
-    esac
 
-    if test $ac_cv_disable_unused_result_warning = yes
-    then
-      BASECFLAGS="$BASECFLAGS -Wno-unused-result"
-      CFLAGS_NODIST="$CFLAGS_NODIST -Wno-unused-result"
-    fi
+ ;; #(
+  *) :
+     ;;
+esac
+    if test "x$ac_cv_disable_unused_result_warning" = xyes; then :
+  BASECFLAGS="$BASECFLAGS -Wno-unused-result"
+               CFLAGS_NODIST="$CFLAGS_NODIST -Wno-unused-result"
+fi
 
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can turn off $CC unused parameter warning" >&5
-$as_echo_n "checking if we can turn off $CC unused parameter warning... " >&6; }
-     ac_save_cc="$CC"
-     CC="$CC -Wunused-parameter -Werror"
-     if ${ac_cv_disable_unused_parameter_warning+:} false; then :
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can disable $CC unused-parameter warning" >&5
+$as_echo_n "checking if we can disable $CC unused-parameter warning... " >&6; }
+
+  py_cflags=$CFLAGS
+  CFLAGS="$CFLAGS -Wunused-parameter -Werror"
+  if ${ac_cv_disable_unused_parameter_warning+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
-
 int
 main ()
 {
@@ -7261,40 +7254,37 @@ main ()
   ;
   return 0;
 }
-
 _ACEOF
 if ac_fn_c_try_compile "$LINENO"; then :
-
-           ac_cv_disable_unused_parameter_warning=yes
-
+  ac_cv_disable_unused_parameter_warning=yes
 else
-
-           ac_cv_disable_unused_parameter_warning=no
-
+  ac_cv_disable_unused_parameter_warning=no
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
 fi
 
-     CC="$ac_save_cc"
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_disable_unused_parameter_warning" >&5
+  CFLAGS=$py_cflags
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_disable_unused_parameter_warning" >&5
 $as_echo "$ac_cv_disable_unused_parameter_warning" >&6; }
 
-    if test $ac_cv_disable_unused_parameter_warning = yes
-    then
-      CFLAGS_NODIST="$CFLAGS_NODIST -Wno-unused-parameter"
-    fi
 
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can turn off $CC missing field initializers warning" >&5
-$as_echo_n "checking if we can turn off $CC missing field initializers warning... " >&6; }
-     ac_save_cc="$CC"
-     CC="$CC -Wmissing-field-initializers -Werror"
-     if ${ac_cv_disable_missing_field_initializers+:} false; then :
+    if test "x$ac_cv_disable_unused_parameter_warning" = xyes; then :
+  CFLAGS_NODIST="$CFLAGS_NODIST -Wno-unused-parameter"
+fi
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can disable $CC missing-field-initializers warning" >&5
+$as_echo_n "checking if we can disable $CC missing-field-initializers warning... " >&6; }
+
+  py_cflags=$CFLAGS
+  CFLAGS="$CFLAGS -Wmissing-field-initializers -Werror"
+  if ${ac_cv_disable_missing_field_initializers_warning+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
-
 int
 main ()
 {
@@ -7302,41 +7292,37 @@ main ()
   ;
   return 0;
 }
-
 _ACEOF
 if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_disable_missing_field_initializers_warning=yes
+else
+  ac_cv_disable_missing_field_initializers_warning=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
-           ac_cv_disable_missing_field_initializers=yes
+fi
 
-else
+  CFLAGS=$py_cflags
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_disable_missing_field_initializers_warning" >&5
+$as_echo "$ac_cv_disable_missing_field_initializers_warning" >&6; }
 
-           ac_cv_disable_missing_field_initializers=no
 
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+    if test "x$ac_cv_disable_missing_field_initializers_warning" = xyes; then :
+  CFLAGS_NODIST="$CFLAGS_NODIST -Wno-missing-field-initializers"
 fi
 
-     CC="$ac_save_cc"
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_disable_missing_field_initializers" >&5
-$as_echo "$ac_cv_disable_missing_field_initializers" >&6; }
 
-    if test $ac_cv_disable_missing_field_initializers = yes
-    then
-      CFLAGS_NODIST="$CFLAGS_NODIST -Wno-missing-field-initializers"
-    fi
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can enable $CC sign-compare warning" >&5
+$as_echo_n "checking if we can enable $CC sign-compare warning... " >&6; }
 
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can turn on $CC mixed sign comparison warning" >&5
-$as_echo_n "checking if we can turn on $CC mixed sign comparison warning... " >&6; }
-     ac_save_cc="$CC"
-     CC="$CC -Wsign-compare"
-     save_CFLAGS="$CFLAGS"
-     if ${ac_cv_enable_sign_compare_warning+:} false; then :
+  py_cflags=$CFLAGS
+  CFLAGS="$CFLAGS -Wsign-compare -Werror"
+  if ${ac_cv_enable_sign_compare_warning+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
-
 int
 main ()
 {
@@ -7344,42 +7330,37 @@ main ()
   ;
   return 0;
 }
-
 _ACEOF
 if ac_fn_c_try_compile "$LINENO"; then :
-
-           ac_cv_enable_sign_compare_warning=yes
-
+  ac_cv_enable_sign_compare_warning=yes
 else
-
-           ac_cv_enable_sign_compare_warning=no
-
+  ac_cv_enable_sign_compare_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_enable_sign_compare_warning" >&5
+  CFLAGS=$py_cflags
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_enable_sign_compare_warning" >&5
 $as_echo "$ac_cv_enable_sign_compare_warning" >&6; }
 
-    if test $ac_cv_enable_sign_compare_warning = yes
-    then
-      BASECFLAGS="$BASECFLAGS -Wsign-compare"
-    fi
 
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can turn on $CC unreachable code warning" >&5
-$as_echo_n "checking if we can turn on $CC unreachable code warning... " >&6; }
-     ac_save_cc="$CC"
-     CC="$CC -Wunreachable-code"
-     save_CFLAGS="$CFLAGS"
-     if ${ac_cv_enable_unreachable_code_warning+:} false; then :
+    if test "x$ac_cv_enable_sign_compare_warning" = xyes; then :
+  BASECFLAGS="$BASECFLAGS -Wsign-compare"
+fi
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can enable $CC unreachable-code warning" >&5
+$as_echo_n "checking if we can enable $CC unreachable-code warning... " >&6; }
+
+  py_cflags=$CFLAGS
+  CFLAGS="$CFLAGS -Wunreachable-code -Werror"
+  if ${ac_cv_enable_unreachable_code_warning+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
-
 int
 main ()
 {
@@ -7387,22 +7368,20 @@ main ()
   ;
   return 0;
 }
-
 _ACEOF
 if ac_fn_c_try_compile "$LINENO"; then :
-
-           ac_cv_enable_unreachable_code_warning=yes
-
+  ac_cv_enable_unreachable_code_warning=yes
 else
-
-           ac_cv_enable_unreachable_code_warning=no
-
+  ac_cv_enable_unreachable_code_warning=no
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
 fi
 
-     CFLAGS="$save_CFLAGS"
-     CC="$ac_save_cc"
+  CFLAGS=$py_cflags
+  { $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.
@@ -7419,20 +7398,19 @@ fi
     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; }
 
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can turn on $CC strict-prototypes warning" >&5
-$as_echo_n "checking if we can turn on $CC strict-prototypes warning... " >&6; }
-     ac_save_cc="$CC"
-     CC="$CC -Werror -Wstrict-prototypes"
-     if ${ac_cv_enable_enable_strict_prototypes_warning+:} false; then :
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can enable $CC strict-prototypes warning" >&5
+$as_echo_n "checking if we can enable $CC strict-prototypes warning... " >&6; }
+
+  py_cflags=$CFLAGS
+  CFLAGS="$CFLAGS -Wstrict-prototypes -Werror"
+  if ${ac_cv_enable_strict_prototypes_warning+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
-
 int
 main ()
 {
@@ -7440,28 +7418,24 @@ main ()
   ;
   return 0;
 }
-
 _ACEOF
 if ac_fn_c_try_compile "$LINENO"; then :
-
-       ac_cv_enable_strict_prototypes_warning=yes
-
+  ac_cv_enable_strict_prototypes_warning=yes
 else
-
-       ac_cv_enable_strict_prototypes_warning=no
-
+  ac_cv_enable_strict_prototypes_warning=no
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
 fi
 
-     CC="$ac_save_cc"
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_enable_strict_prototypes_warning" >&5
+  CFLAGS=$py_cflags
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_enable_strict_prototypes_warning" >&5
 $as_echo "$ac_cv_enable_strict_prototypes_warning" >&6; }
 
-    if test $ac_cv_enable_strict_prototypes_warning = yes
-    then
-      CFLAGS_NODIST="$CFLAGS_NODIST -Wstrict-prototypes"
-    fi
+
+    if test "x$ac_cv_enable_strict_prototypes_warning" = xyes; then :
+  CFLAGS_NODIST="$CFLAGS_NODIST -Wstrict-prototypes"
+fi
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can make implicit function declaration an error in $CC" >&5
 $as_echo_n "checking if we can make implicit function declaration an error in $CC... " >&6; }
@@ -7499,10 +7473,9 @@ fi
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_enable_implicit_function_declaration_error" >&5
 $as_echo "$ac_cv_enable_implicit_function_declaration_error" >&6; }
 
-    if test $ac_cv_enable_implicit_function_declaration_error = yes
-    then
-      CFLAGS_NODIST="$CFLAGS_NODIST -Werror=implicit-function-declaration"
-    fi
+    if test "x$ac_cv_enable_implicit_function_declaration_error" = xyes; then :
+  CFLAGS_NODIST="$CFLAGS_NODIST -Werror=implicit-function-declaration"
+fi
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can use visibility in $CC" >&5
 $as_echo_n "checking if we can use visibility in $CC... " >&6; }
@@ -7540,10 +7513,9 @@ fi
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_enable_visibility" >&5
 $as_echo "$ac_cv_enable_visibility" >&6; }
 
-    if test $ac_cv_enable_visibility = yes
-    then
-      CFLAGS_NODIST="$CFLAGS_NODIST -fvisibility=hidden"
-    fi
+    if test "x$ac_cv_enable_visibility" = xyes; then :
+  CFLAGS_NODIST="$CFLAGS_NODIST -fvisibility=hidden"
+fi
 
     # if using gcc on alpha, use -mieee to get (near) full IEEE 754
     # support.  Without this, treatment of subnormals doesn't follow
diff --git a/configure.ac b/configure.ac
index a982a2f0c88c8..eef36a16afa3a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1640,30 +1640,33 @@ AC_SUBST(LDFLAGS_NODIST)
 UNIVERSAL_ARCH_FLAGS=
 AC_SUBST(UNIVERSAL_ARCH_FLAGS)
 
+dnl PY_CHECK_CC_WARNING(ENABLE, WARNING, [MSG])
+AC_DEFUN([PY_CHECK_CC_WARNING], [
+  AC_MSG_CHECKING(m4_ifblank([$3], [if we can $1 $CC $2 warning], [$3]))
+  AS_VAR_PUSHDEF([py_var], [ac_cv_$1_]m4_normalize($2)[_warning])
+  AS_VAR_COPY([py_cflags], [CFLAGS])
+  AS_VAR_SET([CFLAGS], ["$CFLAGS -W$2 -Werror"])
+  AC_CACHE_VAL(
+    [py_var],
+    [AC_COMPILE_IFELSE(
+      [AC_LANG_PROGRAM([[]], [[]])],
+      [AS_VAR_SET([py_var], [yes])],
+      [AS_VAR_SET([py_var], [no])],
+    )]
+  )
+  AS_VAR_COPY([CFLAGS], [py_cflags])
+  AC_MSG_RESULT([$py_var])
+  AS_VAR_POPDEF([py_var])
+])
+
 # tweak BASECFLAGS based on compiler and platform
 case $GCC in
 yes)
     CFLAGS_NODIST="$CFLAGS_NODIST -std=c99"
 
-    AC_MSG_CHECKING(for -Wextra)
-     ac_save_cc="$CC"
-     CC="$CC -Wextra -Werror"
-     AC_CACHE_VAL(ac_cv_extra_warnings,
-       AC_COMPILE_IFELSE(
-         [
-           AC_LANG_PROGRAM([[]], [[]])
-         ],[
-           ac_cv_extra_warnings=yes
-         ],[
-           ac_cv_extra_warnings=no
-         ]))
-     CC="$ac_save_cc"
-    AC_MSG_RESULT($ac_cv_extra_warnings)
-
-    if test $ac_cv_extra_warnings = yes
-    then
-      CFLAGS_NODIST="$CFLAGS_NODIST -Wextra"
-    fi
+    PY_CHECK_CC_WARNING([enable], [extra], [if we can add -Wextra])
+    AS_VAR_IF([ac_cv_enable_extra_warning], [yes],
+              [CFLAGS_NODIST="$CFLAGS_NODIST -Wextra"])
 
     # Python doesn't violate C99 aliasing rules, but older versions of
     # GCC produce warnings for legal Python code.  Enable
@@ -1695,121 +1698,31 @@ yes)
      CFLAGS="$save_CFLAGS"
      CC="$ac_save_cc"
     AC_MSG_RESULT($ac_cv_no_strict_aliasing)
-    if test $ac_cv_no_strict_aliasing = yes
-    then
-      BASECFLAGS="$BASECFLAGS -fno-strict-aliasing"
-    fi
+    AS_VAR_IF([ac_cv_no_strict_aliasing], [yes],
+              [BASECFLAGS="$BASECFLAGS -fno-strict-aliasing"])
 
     # ICC doesn't recognize the option, but only emits a warning
     ## XXX does it emit an unused result warning and can it be disabled?
-    case "$CC" in
-    *icc*)
-    ac_cv_disable_unused_result_warning=no
-    ;;
-    *)
-    AC_MSG_CHECKING(if we can turn off $CC unused result warning)
-     ac_save_cc="$CC"
-     CC="$CC -Wunused-result -Werror"
-     save_CFLAGS="$CFLAGS"
-     AC_CACHE_VAL(ac_cv_disable_unused_result_warning,
-       AC_COMPILE_IFELSE(
-         [
-	   AC_LANG_PROGRAM([[]], [[]])
-	 ],[
-           ac_cv_disable_unused_result_warning=yes
-	 ],[
-           ac_cv_disable_unused_result_warning=no
-	 ]))
-     CFLAGS="$save_CFLAGS"
-     CC="$ac_save_cc"
-    AC_MSG_RESULT($ac_cv_disable_unused_result_warning)
-    ;;
-    esac
-
-    if test $ac_cv_disable_unused_result_warning = yes
-    then
-      BASECFLAGS="$BASECFLAGS -Wno-unused-result"
-      CFLAGS_NODIST="$CFLAGS_NODIST -Wno-unused-result"
-    fi
-
-    AC_MSG_CHECKING(if we can turn off $CC unused parameter warning)
-     ac_save_cc="$CC"
-     CC="$CC -Wunused-parameter -Werror"
-     AC_CACHE_VAL(ac_cv_disable_unused_parameter_warning,
-       AC_COMPILE_IFELSE(
-         [
-           AC_LANG_PROGRAM([[]], [[]])
-         ],[
-           ac_cv_disable_unused_parameter_warning=yes
-         ],[
-           ac_cv_disable_unused_parameter_warning=no
-         ]))
-     CC="$ac_save_cc"
-    AC_MSG_RESULT($ac_cv_disable_unused_parameter_warning)
-
-    if test $ac_cv_disable_unused_parameter_warning = yes
-    then
-      CFLAGS_NODIST="$CFLAGS_NODIST -Wno-unused-parameter"
-    fi
-
-    AC_MSG_CHECKING(if we can turn off $CC missing field initializers warning)
-     ac_save_cc="$CC"
-     CC="$CC -Wmissing-field-initializers -Werror"
-     AC_CACHE_VAL(ac_cv_disable_missing_field_initializers,
-       AC_COMPILE_IFELSE(
-         [
-           AC_LANG_PROGRAM([[]], [[]])
-         ],[
-           ac_cv_disable_missing_field_initializers=yes
-         ],[
-           ac_cv_disable_missing_field_initializers=no
-         ]))
-     CC="$ac_save_cc"
-    AC_MSG_RESULT($ac_cv_disable_missing_field_initializers)
-
-    if test $ac_cv_disable_missing_field_initializers = yes
-    then
-      CFLAGS_NODIST="$CFLAGS_NODIST -Wno-missing-field-initializers"
-    fi
-
-    AC_MSG_CHECKING(if we can turn on $CC mixed sign comparison warning)
-     ac_save_cc="$CC"
-     CC="$CC -Wsign-compare"
-     save_CFLAGS="$CFLAGS"
-     AC_CACHE_VAL(ac_cv_enable_sign_compare_warning,
-       AC_COMPILE_IFELSE(
-         [
-	   AC_LANG_PROGRAM([[]], [[]])
-	 ],[
-           ac_cv_enable_sign_compare_warning=yes
-	 ],[
-           ac_cv_enable_sign_compare_warning=no
-	 ]))
-     CFLAGS="$save_CFLAGS"
-     CC="$ac_save_cc"
-    AC_MSG_RESULT($ac_cv_enable_sign_compare_warning)
-
-    if test $ac_cv_enable_sign_compare_warning = yes
-    then
-      BASECFLAGS="$BASECFLAGS -Wsign-compare"
-    fi
-
-    AC_MSG_CHECKING(if we can turn on $CC unreachable code warning)
-     ac_save_cc="$CC"
-     CC="$CC -Wunreachable-code"
-     save_CFLAGS="$CFLAGS"
-     AC_CACHE_VAL(ac_cv_enable_unreachable_code_warning,
-       AC_COMPILE_IFELSE(
-         [
-	   AC_LANG_PROGRAM([[]], [[]])
-	 ],[
-           ac_cv_enable_unreachable_code_warning=yes
-	 ],[
-           ac_cv_enable_unreachable_code_warning=no
-	 ]))
-     CFLAGS="$save_CFLAGS"
-     CC="$ac_save_cc"
-
+    AS_CASE([$CC],
+            [*icc*], [ac_cv_disable_unused_result_warning=no]
+            [PY_CHECK_CC_WARNING([disable], [unused-result])])
+    AS_VAR_IF([ac_cv_disable_unused_result_warning], [yes],
+              [BASECFLAGS="$BASECFLAGS -Wno-unused-result"
+               CFLAGS_NODIST="$CFLAGS_NODIST -Wno-unused-result"])
+
+    PY_CHECK_CC_WARNING([disable], [unused-parameter])
+    AS_VAR_IF([ac_cv_disable_unused_parameter_warning], [yes],
+              [CFLAGS_NODIST="$CFLAGS_NODIST -Wno-unused-parameter"])
+
+    PY_CHECK_CC_WARNING([disable], [missing-field-initializers])
+    AS_VAR_IF([ac_cv_disable_missing_field_initializers_warning], [yes],
+              [CFLAGS_NODIST="$CFLAGS_NODIST -Wno-missing-field-initializers"])
+
+    PY_CHECK_CC_WARNING([enable], [sign-compare])
+    AS_VAR_IF([ac_cv_enable_sign_compare_warning], [yes],
+              [BASECFLAGS="$BASECFLAGS -Wsign-compare"])
+
+    PY_CHECK_CC_WARNING([enable], [unreachable-code])
     # Don't enable unreachable code warning in debug mode, since it usually
     # results in non-standard code paths.
     # Issue #24324: Unfortunately, the unreachable code warning does not work
@@ -1825,27 +1738,10 @@ yes)
     else
       ac_cv_enable_unreachable_code_warning=no
     fi
-    AC_MSG_RESULT($ac_cv_enable_unreachable_code_warning)
 
-    AC_MSG_CHECKING(if we can turn on $CC strict-prototypes warning)
-     ac_save_cc="$CC"
-     CC="$CC -Werror -Wstrict-prototypes"
-     AC_CACHE_VAL(ac_cv_enable_enable_strict_prototypes_warning,
-       AC_COMPILE_IFELSE(
-         [
-       AC_LANG_PROGRAM([[]], [[]])
-     ],[
-       ac_cv_enable_strict_prototypes_warning=yes
-     ],[
-       ac_cv_enable_strict_prototypes_warning=no
-     ]))
-     CC="$ac_save_cc"
-    AC_MSG_RESULT($ac_cv_enable_strict_prototypes_warning)
-
-    if test $ac_cv_enable_strict_prototypes_warning = yes
-    then
-      CFLAGS_NODIST="$CFLAGS_NODIST -Wstrict-prototypes"
-    fi
+    PY_CHECK_CC_WARNING([enable], [strict-prototypes])
+    AS_VAR_IF([ac_cv_enable_strict_prototypes_warning], [yes],
+              [CFLAGS_NODIST="$CFLAGS_NODIST -Wstrict-prototypes"])
 
     AC_MSG_CHECKING(if we can make implicit function declaration an error in $CC)
      ac_save_cc="$CC"
@@ -1862,10 +1758,8 @@ yes)
      CC="$ac_save_cc"
     AC_MSG_RESULT($ac_cv_enable_implicit_function_declaration_error)
 
-    if test $ac_cv_enable_implicit_function_declaration_error = yes
-    then
-      CFLAGS_NODIST="$CFLAGS_NODIST -Werror=implicit-function-declaration"
-    fi
+    AS_VAR_IF([ac_cv_enable_implicit_function_declaration_error], [yes],
+              [CFLAGS_NODIST="$CFLAGS_NODIST -Werror=implicit-function-declaration"])
 
     AC_MSG_CHECKING(if we can use visibility in $CC)
      ac_save_cc="$CC"
@@ -1882,10 +1776,8 @@ yes)
      CC="$ac_save_cc"
     AC_MSG_RESULT($ac_cv_enable_visibility)
 
-    if test $ac_cv_enable_visibility = yes
-    then
-      CFLAGS_NODIST="$CFLAGS_NODIST -fvisibility=hidden"
-    fi
+    AS_VAR_IF([ac_cv_enable_visibility], [yes],
+              [CFLAGS_NODIST="$CFLAGS_NODIST -fvisibility=hidden"])
 
     # if using gcc on alpha, use -mieee to get (near) full IEEE 754
     # support.  Without this, treatment of subnormals doesn't follow



More information about the Python-checkins mailing list