]> Savannah Git Hosting - gnulib.git/commitdiff
manywarnings: speed up nomfi test
authorPaul Eggert <eggert@cs.ucla.edu>
Wed, 24 May 2023 17:10:18 +0000 (10:10 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Wed, 24 May 2023 17:11:06 +0000 (10:11 -0700)
* m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Simplify and speed up
on current platforms, by seeing first whether
-Wno-missing-field-initializers is needed (it isn’t), so that
later we don’t need to determine whether it’s supported.

ChangeLog
m4/manywarnings.m4

index e09a981eec76c05f35760b7376c2eca4fd358dbf..95302733ceb0b8258da7bff0765b45b3b6d0a3d7 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
 2023-05-24  Paul Eggert  <eggert@cs.ucla.edu>
 
+       manywarnings: speed up nomfi test
+       * m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Simplify and speed up
+       on current platforms, by seeing first whether
+       -Wno-missing-field-initializers is needed (it isn’t), so that
+       later we don’t need to determine whether it’s supported.
+
        Simplify -Wno-missing-field-initializers checking
        * m4/gnulib-common.m4 (gl_CC_GNULIB_WARNINGS): Don’t worry about
        -Wmissing-field-initializers, as this is no longer needed now that
index 77b96295df62a4d79ee376eba751635453676a14..7792b4f3b46cdf546d97a557aaa53eb75479ea39 100644 (file)
@@ -47,43 +47,29 @@ AC_DEFUN([gl_MANYWARN_ALL_GCC(C)],
   dnl gcc warning categories.
   AC_REQUIRE([AC_PROG_CC])
   AS_IF([test -n "$GCC"], [
-    dnl Check if -Wextra -Werror -Wno-missing-field-initializers is supported
-    dnl with the current $CC $CFLAGS $CPPFLAGS.
-    AC_CACHE_CHECK([whether -Wno-missing-field-initializers is supported],
-      [gl_cv_cc_nomfi_supported],
-      [gl_save_CFLAGS="$CFLAGS"
-       CFLAGS="$CFLAGS -Wextra -Werror -Wno-missing-field-initializers"
+    AC_CACHE_CHECK([whether -Wno-missing-field-initializers is needed],
+      [gl_cv_cc_nomfi_needed],
+      [gl_cv_cc_nomfi_needed=no
+       gl_save_CFLAGS="$CFLAGS"
+       CFLAGS="$CFLAGS -Wextra -Werror"
        AC_COMPILE_IFELSE(
-         [AC_LANG_PROGRAM([[]], [[]])],
-         [gl_cv_cc_nomfi_supported=yes],
-         [gl_cv_cc_nomfi_supported=no])
+         [AC_LANG_PROGRAM(
+            [[struct file_data { int desc, name; };
+              struct cmp { struct file_data file[1]; };
+              void f (struct cmp *r)
+              {
+                typedef struct { int a; int b; } s_t;
+                s_t s1 = { 0, };
+                struct cmp cmp = { .file[0].desc = r->file[0].desc + s1.a };
+                *r = cmp;
+              }
+            ]],
+            [[]])],
+         [],
+         [CFLAGS="$CFLAGS -Wno-missing-field-initializers"
+          AC_COMPILE_IFELSE([],
+            [gl_cv_cc_nomfi_needed=yes])])
        CFLAGS="$gl_save_CFLAGS"
-      ])
-
-    AS_IF([test "$gl_cv_cc_nomfi_supported" = yes], [
-      dnl Now check whether -Wno-missing-field-initializers is needed
-      dnl for the { 0, } construct.
-      AC_CACHE_CHECK([whether -Wno-missing-field-initializers is needed],
-        [gl_cv_cc_nomfi_needed],
-        [gl_save_CFLAGS="$CFLAGS"
-         CFLAGS="$CFLAGS -Wextra -Werror"
-         AC_COMPILE_IFELSE(
-           [AC_LANG_PROGRAM(
-              [[struct file_data { int desc, name; };
-                struct cmp { struct file_data file[1]; };
-                void f (struct cmp *r)
-                {
-                  typedef struct { int a; int b; } s_t;
-                  s_t s1 = { 0, };
-                  struct cmp cmp = { .file[0].desc = r->file[0].desc + s1.a };
-                  *r = cmp;
-                }
-              ]],
-              [[]])],
-           [gl_cv_cc_nomfi_needed=no],
-           [gl_cv_cc_nomfi_needed=yes])
-         CFLAGS="$gl_save_CFLAGS"
-        ])
     ])
 
     dnl Next, check if -Werror -Wuninitialized is useful with the