From d7fd9391132a93ae482a003a81bd25afcf1973f8 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Wed, 24 May 2023 10:10:18 -0700 Subject: [PATCH] manywarnings: speed up nomfi test MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit * 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 | 6 +++++ m4/manywarnings.m4 | 56 +++++++++++++++++----------------------------- 2 files changed, 27 insertions(+), 35 deletions(-) diff --git a/ChangeLog b/ChangeLog index e09a981eec..95302733ce 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 2023-05-24 Paul Eggert + 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 diff --git a/m4/manywarnings.m4 b/m4/manywarnings.m4 index 77b96295df..7792b4f3b4 100644 --- a/m4/manywarnings.m4 +++ b/m4/manywarnings.m4 @@ -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 -- 2.39.5