From 46a4745434bb3620f5c67df29969fe8bd311870c Mon Sep 17 00:00:00 2001
From: Paul Eggert <eggert@cs.ucla.edu>
Date: Wed, 24 May 2023 09:20:48 -0700
Subject: [PATCH] manywarnings: port better to GCC 11.2 and earlier

Problem reported by Bruno Haible in:
https://lists.gnu.org/r/bug-diffutils/2023-05/msg00015.html
* m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC):
Also test for GCC bug 82283
<https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82283>.
---
 ChangeLog          | 9 +++++++++
 m4/manywarnings.m4 | 7 +++++--
 2 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 01944021be..81057be3d6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2023-05-24  Paul Eggert  <eggert@cs.ucla.edu>
+
+	manywarnings: port better to GCC 11.2 and earlier
+	Problem reported by Bruno Haible in:
+	https://lists.gnu.org/r/bug-diffutils/2023-05/msg00015.html
+	* m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC):
+	Also test for GCC bug 82283
+	<https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82283>.
+
 2023-05-24  Bruno Haible  <bruno@clisp.org>
 
 	asyncsafe-spin, simple-atomic: Don't use -mcpu-v9 on NetBSD/sparc.
diff --git a/m4/manywarnings.m4 b/m4/manywarnings.m4
index 13db996516..77b96295df 100644
--- a/m4/manywarnings.m4
+++ b/m4/manywarnings.m4
@@ -69,11 +69,14 @@ AC_DEFUN([gl_MANYWARN_ALL_GCC(C)],
          CFLAGS="$CFLAGS -Wextra -Werror"
          AC_COMPILE_IFELSE(
            [AC_LANG_PROGRAM(
-              [[int f (void)
+              [[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, };
-                  return s1.b;
+                  struct cmp cmp = { .file[0].desc = r->file[0].desc + s1.a };
+                  *r = cmp;
                 }
               ]],
               [[]])],
-- 
2.39.5