public inbox for glibc-cvs@sourceware.org
help / color / mirror / Atom feed
* [glibc/azanella/clang] Suppress -Wmaybe-uninitialized only for gcc
@ 2024-02-09 17:28 Adhemerval Zanella
  0 siblings, 0 replies; 7+ messages in thread
From: Adhemerval Zanella @ 2024-02-09 17:28 UTC (permalink / raw)
  To: glibc-cvs

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=1cdfb47469f7ceee6ea9d65ee26fff0999c51237

commit 1cdfb47469f7ceee6ea9d65ee26fff0999c51237
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Wed Mar 9 15:51:50 2022 -0300

    Suppress -Wmaybe-uninitialized only for gcc
    
    The warning is not supported by clang.

Diff:
---
 elf/dl-load.c                                    |  2 +-
 hurd/hurdsig.c                                   |  2 +-
 iconv/loop.c                                     |  2 +-
 iconvdata/iso-2022-cn-ext.c                      |  2 +-
 include/libc-diag.h                              |  3 +++
 inet/net-internal.h                              |  2 +-
 locale/weight.h                                  |  6 +++---
 locale/weightwc.h                                |  8 ++++----
 malloc/malloc-check.c                            |  2 +-
 nis/nis_table.c                                  |  2 +-
 nptl/tst-thread-setspecific.c                    |  2 +-
 nptl_db/thread_dbP.h                             |  2 +-
 posix/fnmatch_loop.c                             |  6 +++---
 posix/regexec.c                                  |  2 +-
 resolv/res_send.c                                | 10 +++++-----
 stdio-common/vfscanf-internal.c                  |  2 +-
 stdlib/bug-getcontext.c                          |  2 +-
 string/strcoll_l.c                               |  4 ++--
 string/wordcopy.c                                |  6 +++---
 sunrpc/clnt_udp.c                                |  2 +-
 sysdeps/ieee754/dbl-64/e_lgamma_r.c              |  2 +-
 sysdeps/ieee754/dbl-64/s_log1p.c                 |  2 +-
 sysdeps/ieee754/flt-32/e_lgammaf_r.c             |  2 +-
 sysdeps/ieee754/flt-32/s_log1pf.c                |  2 +-
 sysdeps/ieee754/ldbl-128/k_tanl.c                |  2 +-
 sysdeps/ieee754/ldbl-128ibm/k_tanl.c             |  2 +-
 sysdeps/ieee754/ldbl-96/e_lgammal_r.c            |  2 +-
 sysdeps/ieee754/ldbl-96/k_tanl.c                 |  2 +-
 sysdeps/ieee754/soft-fp/s_ddivl.c                |  2 +-
 sysdeps/ieee754/soft-fp/s_dfmal.c                |  2 +-
 sysdeps/ieee754/soft-fp/s_dsqrtl.c               |  2 +-
 sysdeps/ieee754/soft-fp/s_fdiv.c                 |  2 +-
 sysdeps/ieee754/soft-fp/s_fdivl.c                |  2 +-
 sysdeps/ieee754/soft-fp/s_ffma.c                 |  2 +-
 sysdeps/ieee754/soft-fp/s_ffmal.c                |  2 +-
 sysdeps/ieee754/soft-fp/s_fma.c                  |  2 +-
 sysdeps/ieee754/soft-fp/s_fmaf.c                 |  2 +-
 sysdeps/ieee754/soft-fp/s_fmal.c                 |  2 +-
 sysdeps/ieee754/soft-fp/s_fsqrt.c                |  2 +-
 sysdeps/unix/sysv/linux/convert_scm_timestamps.c |  2 +-
 40 files changed, 56 insertions(+), 53 deletions(-)

diff --git a/elf/dl-load.c b/elf/dl-load.c
index a34cb3559c..a3a175e4b9 100644
--- a/elf/dl-load.c
+++ b/elf/dl-load.c
@@ -1148,7 +1148,7 @@ _dl_map_object_from_fd (const char *name, const char *origname, int fd,
 	     ‘(((char *)loadcmds.113_68 + _933 + 16))[329406144173384849].mapend’ may be used uninitialized [-Wmaybe-uninitialized]
 	     See: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106008
 	   */
-	  DIAG_IGNORE_NEEDS_COMMENT (11, "-Wmaybe-uninitialized");
+	  DIAG_IGNORE_NEEDS_COMMENT_GCC (11, "-Wmaybe-uninitialized");
 #endif
 	  /* Determine whether there is a gap between the last segment
 	     and this one.  */
diff --git a/hurd/hurdsig.c b/hurd/hurdsig.c
index 882a03471d..3164f3be5f 100644
--- a/hurd/hurdsig.c
+++ b/hurd/hurdsig.c
@@ -376,7 +376,7 @@ interrupted_reply_port_location (thread_t thread,
   /* GCC 6 and before seem to be confused by the setjmp call inside
      _hurdsig_catch_memory_fault and think that we may be returning a second
      time to here with portloc uninitialized (but we never do). */
-  DIAG_IGNORE_NEEDS_COMMENT (6, "-Wmaybe-uninitialized");
+  DIAG_IGNORE_NEEDS_COMMENT_GCC (6, "-Wmaybe-uninitialized");
   /* Fault now if this pointer is bogus.  */
   *(volatile mach_port_t *) portloc = *portloc;
   DIAG_POP_NEEDS_COMMENT;
diff --git a/iconv/loop.c b/iconv/loop.c
index 5340dafc70..ade4185f53 100644
--- a/iconv/loop.c
+++ b/iconv/loop.c
@@ -192,7 +192,7 @@
    has a comment referencing this diagnostic disabling; updates in one
    place may require updates in the other.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_Os_NEEDS_COMMENT (7, "-Wmaybe-uninitialized");
+DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (7, "-Wmaybe-uninitialized");
 /* Handling of Unicode 3.1 TAG characters.  Unicode recommends
    "If language codes are not relevant to the particular processing
     operation, then they should be ignored."  This macro is usually
diff --git a/iconvdata/iso-2022-cn-ext.c b/iconvdata/iso-2022-cn-ext.c
index b34c8a36f4..0be9278740 100644
--- a/iconvdata/iso-2022-cn-ext.c
+++ b/iconvdata/iso-2022-cn-ext.c
@@ -403,7 +403,7 @@ enum
    involved in determining the code page and is the indicator that
    tmpbuf[2] is initialized.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_Os_NEEDS_COMMENT (5, "-Wmaybe-uninitialized");
+DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (5, "-Wmaybe-uninitialized");
 #define BODY \
   {									      \
     uint32_t ch;							      \
diff --git a/include/libc-diag.h b/include/libc-diag.h
index 7666a386f3..49e7457c6e 100644
--- a/include/libc-diag.h
+++ b/include/libc-diag.h
@@ -86,9 +86,12 @@
 #ifndef __clang__
 # define DIAG_IGNORE_NEEDS_COMMENT_GCC(VERSION, WARNING) \
   DIAG_IGNORE_NEEDS_COMMENT (VERSION, WARNING)
+# define DIAG_IGNORE_Os_NEEDS_COMMENT_GCC(VERSION, WARNING) \
+  DIAG_IGNORE_Os_NEEDS_COMMENT (VERSION, WARNING)
 # define DIAG_IGNORE_NEEDS_COMMENT_CLANG(version, option)
 #else
 # define DIAG_IGNORE_NEEDS_COMMENT_GCC(VERSION, WARNING)
+# define DIAG_IGNORE_Os_NEEDS_COMMENT_GCC(VERSION, WARNING)
 # define DIAG_IGNORE_NEEDS_COMMENT_CLANG(version, option) \
   _Pragma (_DIAG_STR (clang diagnostic ignored option))
 #endif
diff --git a/inet/net-internal.h b/inet/net-internal.h
index f5749a8662..ad71fbecf0 100644
--- a/inet/net-internal.h
+++ b/inet/net-internal.h
@@ -106,7 +106,7 @@ __deadline_is_infinite (struct deadline deadline)
  *    https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91691
  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (9, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (9, "-Wmaybe-uninitialized");
 
 /* Return true if the current time is at the deadline or past it.  */
 static inline bool
diff --git a/locale/weight.h b/locale/weight.h
index 4c5e8b7a73..7cabfec2bb 100644
--- a/locale/weight.h
+++ b/locale/weight.h
@@ -32,7 +32,7 @@ findidx (const int32_t *table,
      This uninitialized use is impossible for the same reason
      as described in comments in locale/weightwc.h.  */
   DIAG_PUSH_NEEDS_COMMENT;
-  DIAG_IGNORE_Os_NEEDS_COMMENT (8, "-Wmaybe-uninitialized");
+  DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (8, "-Wmaybe-uninitialized");
   int32_t i = table[*(*cpp)++];
   DIAG_POP_NEEDS_COMMENT;
   const unsigned char *cp;
@@ -75,7 +75,7 @@ findidx (const int32_t *table,
 	     of -1 for len at the same time which means that this loop
 	     never executes.  */
 	  DIAG_PUSH_NEEDS_COMMENT;
-	  DIAG_IGNORE_Os_NEEDS_COMMENT (5, "-Wmaybe-uninitialized");
+	  DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (5, "-Wmaybe-uninitialized");
 	  for (cnt = 0; cnt < nhere && cnt < len; ++cnt)
 	    if (cp[cnt] != usrc[cnt])
 	      break;
@@ -144,7 +144,7 @@ findidx (const int32_t *table,
 		     is impossible for the same reason as described
 		     above.  */
 		  DIAG_PUSH_NEEDS_COMMENT;
-		  DIAG_IGNORE_Os_NEEDS_COMMENT (7, "-Wmaybe-uninitialized");
+		  DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (7, "-Wmaybe-uninitialized");
 		  offset += usrc[cnt] - cp[cnt];
 		  DIAG_POP_NEEDS_COMMENT;
 		}
diff --git a/locale/weightwc.h b/locale/weightwc.h
index 5fce8d4448..7072e19017 100644
--- a/locale/weightwc.h
+++ b/locale/weightwc.h
@@ -33,7 +33,7 @@ findidx (const int32_t *table,
      called except in cases where those fields have been
      initialized.  */
   DIAG_PUSH_NEEDS_COMMENT;
-  DIAG_IGNORE_Os_NEEDS_COMMENT (7, "-Wmaybe-uninitialized");
+  DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (7, "-Wmaybe-uninitialized");
   wint_t ch = *(*cpp)++;
   DIAG_POP_NEEDS_COMMENT;
   int32_t i = __collidx_table_lookup ((const char *) table, ch);
@@ -74,7 +74,7 @@ findidx (const int32_t *table,
 	     of -1 for len at the same time which means that this loop
 	     never executes.  */
 	  DIAG_PUSH_NEEDS_COMMENT;
-	  DIAG_IGNORE_Os_NEEDS_COMMENT (5, "-Wmaybe-uninitialized");
+	  DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (5, "-Wmaybe-uninitialized");
 	  for (cnt = 0; cnt < nhere && cnt < len; ++cnt)
 	    if (cp[cnt] != usrc[cnt])
 	      break;
@@ -102,7 +102,7 @@ findidx (const int32_t *table,
 	     might be used uninitialized.  This is impossible for the
 	     same reason as described above.  */
 	  DIAG_PUSH_NEEDS_COMMENT;
-	  DIAG_IGNORE_Os_NEEDS_COMMENT (7, "-Wmaybe-uninitialized");
+	  DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (7, "-Wmaybe-uninitialized");
 	  for (cnt = 0; cnt < nhere - 1 && cnt < len; ++cnt)
 	    if (cp[cnt] != usrc[cnt])
 	      break;
@@ -119,7 +119,7 @@ findidx (const int32_t *table,
 	     might be used uninitialized.  This is impossible for the
 	     same reason as described above.  */
 	  DIAG_PUSH_NEEDS_COMMENT;
-	  DIAG_IGNORE_Os_NEEDS_COMMENT (7, "-Wmaybe-uninitialized");
+	  DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (7, "-Wmaybe-uninitialized");
 	  if (cp[nhere - 1] > usrc[nhere - 1])
 	    {
 	      cp += 2 * nhere;
diff --git a/malloc/malloc-check.c b/malloc/malloc-check.c
index da1158b333..0ccc7672d9 100644
--- a/malloc/malloc-check.c
+++ b/malloc/malloc-check.c
@@ -319,7 +319,7 @@ realloc_check (void *oldmem, size_t bytes)
 #if __GNUC_PREREQ (7, 0)
   /* GCC 7 warns about magic_p may be used uninitialized.  But we never
      reach here if magic_p is uninitialized.  */
-  DIAG_IGNORE_NEEDS_COMMENT (7, "-Wmaybe-uninitialized");
+  DIAG_IGNORE_NEEDS_COMMENT_GCC (7, "-Wmaybe-uninitialized");
 #endif
   /* mem2chunk_check changed the magic byte in the old chunk.
      If newmem is NULL, then the old chunk will still be used though,
diff --git a/nis/nis_table.c b/nis/nis_table.c
index 56c1aa262d..399c16cb86 100644
--- a/nis/nis_table.c
+++ b/nis/nis_table.c
@@ -180,7 +180,7 @@ __follow_path (char **tablepath, char **tableptr, struct ib_request *ibreq,
   /* Since tableptr is only set here, and it's set when tablepath is NULL,
      which it is initially defined as, we know it will always be set here.  */
   DIAG_PUSH_NEEDS_COMMENT;
-  DIAG_IGNORE_NEEDS_COMMENT (4.7, "-Wmaybe-uninitialized");
+  DIAG_IGNORE_NEEDS_COMMENT_GCC (4.7, "-Wmaybe-uninitialized");
 
   if (*tableptr == NULL)
     return NIS_NOTFOUND;
diff --git a/nptl/tst-thread-setspecific.c b/nptl/tst-thread-setspecific.c
index 462c9f0d2b..0008a8ee2f 100644
--- a/nptl/tst-thread-setspecific.c
+++ b/nptl/tst-thread-setspecific.c
@@ -25,7 +25,7 @@
    See BZ #27714.  */
 
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (6, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (6, "-Wmaybe-uninitialized");
 DIAG_IGNORE_NEEDS_COMMENT (6, "-Wuninitialized");
 
 static int
diff --git a/nptl_db/thread_dbP.h b/nptl_db/thread_dbP.h
index 72d5558845..aa9b614cb0 100644
--- a/nptl_db/thread_dbP.h
+++ b/nptl_db/thread_dbP.h
@@ -176,7 +176,7 @@ extern ps_err_e td_mod_lookup (struct ps_prochandle *ps, const char *modname,
    when DB_GET_FIELD_ADDRESS is called with a slot for ptr, the slot is
    always initialized.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_Os_NEEDS_COMMENT (5, "-Wmaybe-uninitialized");
+DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (5, "-Wmaybe-uninitialized");
 #define DB_GET_FIELD_ADDRESS(var, ta, ptr, type, field, idx) \
   ((var) = (ptr), _td_locate_field ((ta), (ta)->ta_field_##type##_##field, \
 				    SYM_##type##_FIELD_##field, \
diff --git a/posix/fnmatch_loop.c b/posix/fnmatch_loop.c
index 6994a09ab5..17fcb58bf4 100644
--- a/posix/fnmatch_loop.c
+++ b/posix/fnmatch_loop.c
@@ -560,7 +560,7 @@ FCT (const CHAR *pattern, const CHAR *string, const CHAR *string_end,
 				   above it will be properly set by the loop.
 				   */
                                 DIAG_PUSH_NEEDS_COMMENT;
-                                DIAG_IGNORE_Os_NEEDS_COMMENT (8, "-Wmaybe-uninitialized");
+                                DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (8, "-Wmaybe-uninitialized");
                                 cold = wextra[1 + wextra[0]];
                                 DIAG_POP_NEEDS_COMMENT;
 # else
@@ -745,7 +745,7 @@ FCT (const CHAR *pattern, const CHAR *string, const CHAR *string_end,
                                        means that it was properly set in the
                                        loop above.   */
                                     DIAG_PUSH_NEEDS_COMMENT;
-                                    DIAG_IGNORE_Os_NEEDS_COMMENT (8, "-Wmaybe-uninitialized");
+                                    DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (8, "-Wmaybe-uninitialized");
                                     cend = wextra[1 + wextra[0]];
                                     DIAG_POP_NEEDS_COMMENT;
 # else
@@ -754,7 +754,7 @@ FCT (const CHAR *pattern, const CHAR *string, const CHAR *string_end,
 				       wextra above it will be properly set by
 				       the loop.   */
                                     DIAG_PUSH_NEEDS_COMMENT;
-                                    DIAG_IGNORE_Os_NEEDS_COMMENT (8, "-Wmaybe-uninitialized");
+                                    DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (8, "-Wmaybe-uninitialized");
                                     idx += 1 + extra[idx];
                                     DIAG_POP_NEEDS_COMMENT;
                                     /* Adjust for the alignment.  */
diff --git a/posix/regexec.c b/posix/regexec.c
index 180e3bce40..13add301f5 100644
--- a/posix/regexec.c
+++ b/posix/regexec.c
@@ -3772,7 +3772,7 @@ check_node_accept_bytes (const re_dfa_t *dfa, Idx node_idx,
 		 however the loop will be executed iff ncoll_syms is larger
 		 than 0,which means extra will be already initialized.  */
 	      DIAG_PUSH_NEEDS_COMMENT;
-	      DIAG_IGNORE_Os_NEEDS_COMMENT (8, "-Wmaybe-uninitialized");
+	      DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (8, "-Wmaybe-uninitialized");
 	      const unsigned char *coll_sym = extra + cset->coll_syms[i];
 	      DIAG_POP_NEEDS_COMMENT;
 	      /* Compare the length of input collating element and
diff --git a/resolv/res_send.c b/resolv/res_send.c
index fb0217204a..c314d9762a 100644
--- a/resolv/res_send.c
+++ b/resolv/res_send.c
@@ -266,7 +266,7 @@ __res_context_send (struct resolv_context *ctx,
 	   Here the variable n is set to the return value of send_vc.
 	   See below.  */
 	DIAG_PUSH_NEEDS_COMMENT;
-	DIAG_IGNORE_NEEDS_COMMENT (9, "-Wmaybe-uninitialized");
+	DIAG_IGNORE_NEEDS_COMMENT_GCC (9, "-Wmaybe-uninitialized");
 	int n;
 	DIAG_POP_NEEDS_COMMENT;
 
@@ -364,7 +364,7 @@ __res_context_send (struct resolv_context *ctx,
 				return (-1);
 			/* See comment at the declaration of n.  */
 			DIAG_PUSH_NEEDS_COMMENT;
-			DIAG_IGNORE_NEEDS_COMMENT (9, "-Wmaybe-uninitialized");
+			DIAG_IGNORE_NEEDS_COMMENT_GCC (9, "-Wmaybe-uninitialized");
 			if (n == 0 && (buf2 == NULL || *resplen2 == 0))
 				goto next_ns;
 			DIAG_POP_NEEDS_COMMENT;
@@ -388,7 +388,7 @@ __res_context_send (struct resolv_context *ctx,
 
 		/* See comment at the declaration of n.  Note: resplen = n;  */
 		DIAG_PUSH_NEEDS_COMMENT;
-		DIAG_IGNORE_NEEDS_COMMENT (9, "-Wmaybe-uninitialized");
+		DIAG_IGNORE_NEEDS_COMMENT_GCC (9, "-Wmaybe-uninitialized");
 		/* Mask the AD bit in both responses unless it is
 		   marked trusted.  */
 		if (resplen > HFIXEDSZ)
@@ -580,7 +580,7 @@ send_vc(res_state statp,
 	   a false-positive.
 	 */
 	DIAG_PUSH_NEEDS_COMMENT;
-	DIAG_IGNORE_NEEDS_COMMENT (5, "-Wmaybe-uninitialized");
+	DIAG_IGNORE_NEEDS_COMMENT_GCC (5, "-Wmaybe-uninitialized");
 	int resplen;
 	DIAG_POP_NEEDS_COMMENT;
 	struct iovec iov[4];
@@ -852,7 +852,7 @@ reopen (res_state statp, int *terrno, int ns)
 		   the function return -1 before control flow reaches
 		   the call to connect with slen.  */
 		DIAG_PUSH_NEEDS_COMMENT;
-		DIAG_IGNORE_Os_NEEDS_COMMENT (5, "-Wmaybe-uninitialized");
+		DIAG_IGNORE_NEEDS_COMMENT_GCC (5, "-Wmaybe-uninitialized");
 		if (__connect (EXT (statp).nssocks[ns], nsap, slen) < 0) {
 		DIAG_POP_NEEDS_COMMENT;
 			__res_iclose(statp, false);
diff --git a/stdio-common/vfscanf-internal.c b/stdio-common/vfscanf-internal.c
index 1b82deffa7..eb66506ca3 100644
--- a/stdio-common/vfscanf-internal.c
+++ b/stdio-common/vfscanf-internal.c
@@ -1608,7 +1608,7 @@ __vfscanf_internal (FILE *s, const char *format, va_list argptr,
 			 above, but the test for "map != NULL" is done
 			 inside the loop here and outside the loop there.  */
 		      DIAG_PUSH_NEEDS_COMMENT;
-		      DIAG_IGNORE_NEEDS_COMMENT (4.7, "-Wmaybe-uninitialized");
+		      DIAG_IGNORE_NEEDS_COMMENT_GCC (4.7, "-Wmaybe-uninitialized");
 
 		      if (__glibc_unlikely (map != NULL))
 			wcdigits[n] = digits_extended[n];
diff --git a/stdlib/bug-getcontext.c b/stdlib/bug-getcontext.c
index 55c681c480..9e5e6c7e1c 100644
--- a/stdlib/bug-getcontext.c
+++ b/stdlib/bug-getcontext.c
@@ -56,7 +56,7 @@ do_test (void)
      in local variables being clobbered on the second return from
      getcontext), in fact an uninitialized use is not possible.  */
   DIAG_PUSH_NEEDS_COMMENT;
-  DIAG_IGNORE_NEEDS_COMMENT (5, "-Wmaybe-uninitialized");
+  DIAG_IGNORE_NEEDS_COMMENT_GCC (5, "-Wmaybe-uninitialized");
   int mask = fegetexcept ();
   if (mask != except_mask)
     {
diff --git a/string/strcoll_l.c b/string/strcoll_l.c
index 06aa1423c0..d68b12e79a 100644
--- a/string/strcoll_l.c
+++ b/string/strcoll_l.c
@@ -180,7 +180,7 @@ get_next_seq (coll_seq *seq, int nrules, const unsigned char *rulesets,
 	 ensures that seq->save_idx was saved to first and contains a
 	 valid value.  */
       DIAG_PUSH_NEEDS_COMMENT;
-      DIAG_IGNORE_Os_NEEDS_COMMENT (5, "-Wmaybe-uninitialized");
+      DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (5, "-Wmaybe-uninitialized");
       len = weights[idx++];
       DIAG_POP_NEEDS_COMMENT;
       /* Skip over indices of previous levels.  */
@@ -299,7 +299,7 @@ STRCOLL (const STRING_TYPE *s1, const STRING_TYPE *s2, locale_t l)
      seq2.  This uninitialized use is impossible for the same reason
      as described in comments in locale/weightwc.h.  */
   DIAG_PUSH_NEEDS_COMMENT;
-  DIAG_IGNORE_Os_NEEDS_COMMENT (7, "-Wmaybe-uninitialized");
+  DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (7, "-Wmaybe-uninitialized");
   coll_seq seq1, seq2;
   DIAG_POP_NEEDS_COMMENT;
   seq1.len = 0;
diff --git a/string/wordcopy.c b/string/wordcopy.c
index 4e77cdb132..083daa658c 100644
--- a/string/wordcopy.c
+++ b/string/wordcopy.c
@@ -29,7 +29,7 @@
    Since the usage is within the MERGE macro we disable the
    warning in the definition, but only in this file.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (6, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (6, "-Wmaybe-uninitialized");
 #include <memcopy.h>
 DIAG_POP_NEEDS_COMMENT;
 
@@ -112,7 +112,7 @@ WORDCOPY_FWD_ALIGNED (long int dstp, long int srcp, size_t len)
 	 case. The switch case always sets 'a1' and all previous loop
 	 iterations will also have set 'a1' before the use.  */
       DIAG_PUSH_NEEDS_COMMENT;
-      DIAG_IGNORE_NEEDS_COMMENT (6, "-Wmaybe-uninitialized");
+      DIAG_IGNORE_NEEDS_COMMENT_GCC (6, "-Wmaybe-uninitialized");
       ((op_t *) dstp)[0] = a1;
       DIAG_POP_NEEDS_COMMENT;
     do7:
@@ -313,7 +313,7 @@ WORDCOPY_BWD_ALIGNED (long int dstp, long int srcp, size_t len)
       a0 = ((op_t *) srcp)[7];
       /* Check the comment on WORDCOPY_FWD_ALIGNED.  */
       DIAG_PUSH_NEEDS_COMMENT;
-      DIAG_IGNORE_NEEDS_COMMENT (6, "-Wmaybe-uninitialized");
+      DIAG_IGNORE_NEEDS_COMMENT_GCC (6, "-Wmaybe-uninitialized");
       ((op_t *) dstp)[7] = a1;
       DIAG_POP_NEEDS_COMMENT;
     do7:
diff --git a/sunrpc/clnt_udp.c b/sunrpc/clnt_udp.c
index ee79b09b40..4353e5da18 100644
--- a/sunrpc/clnt_udp.c
+++ b/sunrpc/clnt_udp.c
@@ -299,7 +299,7 @@ clntudp_call (/* client handle */
      inet/net-internal.h because in some other configurations GCC
      gives the warning in an inline function.  */
   DIAG_PUSH_NEEDS_COMMENT;
-  DIAG_IGNORE_NEEDS_COMMENT (10, "-Wmaybe-uninitialized");
+  DIAG_IGNORE_NEEDS_COMMENT_GCC (10, "-Wmaybe-uninitialized");
   struct deadline total_deadline; /* Determined once by overall timeout.  */
   DIAG_POP_NEEDS_COMMENT;
   struct deadline response_deadline; /* Determined anew for each query.  */
diff --git a/sysdeps/ieee754/dbl-64/e_lgamma_r.c b/sysdeps/ieee754/dbl-64/e_lgamma_r.c
index 72c68b6682..c298c8ca03 100644
--- a/sysdeps/ieee754/dbl-64/e_lgamma_r.c
+++ b/sysdeps/ieee754/dbl-64/e_lgamma_r.c
@@ -304,7 +304,7 @@ __ieee754_lgamma_r(double x, int *signgamp)
 	   although in the cases where it is used it has always been
 	   set.  */
 	DIAG_PUSH_NEEDS_COMMENT;
-	DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+	DIAG_IGNORE_NEEDS_COMMENT_GCC (4.9, "-Wmaybe-uninitialized");
 	if(hx<0) r = nadj - r;
 	DIAG_POP_NEEDS_COMMENT;
 	return r;
diff --git a/sysdeps/ieee754/dbl-64/s_log1p.c b/sysdeps/ieee754/dbl-64/s_log1p.c
index eeb0af859f..f52c0124fc 100644
--- a/sysdeps/ieee754/dbl-64/s_log1p.c
+++ b/sysdeps/ieee754/dbl-64/s_log1p.c
@@ -205,7 +205,7 @@ __log1p (double x)
 	 must be 0 for c to be uninitialized and we handled that
 	 computation earlier without using c.  */
       DIAG_PUSH_NEEDS_COMMENT;
-      DIAG_IGNORE_Os_NEEDS_COMMENT (7, "-Wmaybe-uninitialized");
+      DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (7, "-Wmaybe-uninitialized");
       return k * ln2_hi - ((hfsq - (s * (hfsq + R) + (k * ln2_lo + c))) - f);
       DIAG_POP_NEEDS_COMMENT;
     }
diff --git a/sysdeps/ieee754/flt-32/e_lgammaf_r.c b/sysdeps/ieee754/flt-32/e_lgammaf_r.c
index a1a3a60454..77dc54eaeb 100644
--- a/sysdeps/ieee754/flt-32/e_lgammaf_r.c
+++ b/sysdeps/ieee754/flt-32/e_lgammaf_r.c
@@ -239,7 +239,7 @@ __ieee754_lgammaf_r(float x, int *signgamp)
 	   although in the cases where it is used it has always been
 	   set.  */
 	DIAG_PUSH_NEEDS_COMMENT;
-	DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+	DIAG_IGNORE_NEEDS_COMMENT_GCC (4.9, "-Wmaybe-uninitialized");
 	if(hx<0) r = nadj - r;
 	DIAG_POP_NEEDS_COMMENT;
 	return r;
diff --git a/sysdeps/ieee754/flt-32/s_log1pf.c b/sysdeps/ieee754/flt-32/s_log1pf.c
index 555f0f82c8..cddc0f1e09 100644
--- a/sysdeps/ieee754/flt-32/s_log1pf.c
+++ b/sysdeps/ieee754/flt-32/s_log1pf.c
@@ -108,7 +108,7 @@ __log1pf(float x)
 	       because k must be 0 for c to be uninitialized and we
 	       handled that computation earlier without using c.  */
 	    DIAG_PUSH_NEEDS_COMMENT;
-	    DIAG_IGNORE_Os_NEEDS_COMMENT (7, "-Wmaybe-uninitialized");
+	    DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (7, "-Wmaybe-uninitialized");
 	    return k * ln2_hi - ((hfsq - (s * (hfsq + R)
 					  + (k * ln2_lo + c))) - f);
 	    DIAG_POP_NEEDS_COMMENT;
diff --git a/sysdeps/ieee754/ldbl-128/k_tanl.c b/sysdeps/ieee754/ldbl-128/k_tanl.c
index 8e93626a89..af10fbc64b 100644
--- a/sysdeps/ieee754/ldbl-128/k_tanl.c
+++ b/sysdeps/ieee754/ldbl-128/k_tanl.c
@@ -143,7 +143,7 @@ __kernel_tanl (_Float128 x, _Float128 y, int iy)
 	 uninitialized although in the cases where it is used it has
 	 always been set.  */
       DIAG_PUSH_NEEDS_COMMENT;
-      DIAG_IGNORE_NEEDS_COMMENT (5, "-Wmaybe-uninitialized");
+      DIAG_IGNORE_NEEDS_COMMENT_GCC (5, "-Wmaybe-uninitialized");
       if (sign < 0)
 	w = -w;
       DIAG_POP_NEEDS_COMMENT;
diff --git a/sysdeps/ieee754/ldbl-128ibm/k_tanl.c b/sysdeps/ieee754/ldbl-128ibm/k_tanl.c
index cd95e46089..7a42a18e55 100644
--- a/sysdeps/ieee754/ldbl-128ibm/k_tanl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/k_tanl.c
@@ -143,7 +143,7 @@ __kernel_tanl (long double x, long double y, int iy)
 	 uninitialized although in the cases where it is used it has
 	 always been set.  */
       DIAG_PUSH_NEEDS_COMMENT;
-      DIAG_IGNORE_NEEDS_COMMENT (5, "-Wmaybe-uninitialized");
+      DIAG_IGNORE_NEEDS_COMMENT_GCC (5, "-Wmaybe-uninitialized");
       if (sign < 0)
 	w = -w;
       DIAG_POP_NEEDS_COMMENT;
diff --git a/sysdeps/ieee754/ldbl-96/e_lgammal_r.c b/sysdeps/ieee754/ldbl-96/e_lgammal_r.c
index 148c21bb8d..d4fd7f5272 100644
--- a/sysdeps/ieee754/ldbl-96/e_lgammal_r.c
+++ b/sysdeps/ieee754/ldbl-96/e_lgammal_r.c
@@ -431,7 +431,7 @@ __ieee754_lgammal_r (long double x, int *signgamp)
      in warnings that it may be used uninitialized although in the
      cases where it is used it has always been set.  */
   DIAG_PUSH_NEEDS_COMMENT;
-  DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+  DIAG_IGNORE_NEEDS_COMMENT_GCC (4.9, "-Wmaybe-uninitialized");
   if (se & 0x8000)
     r = nadj - r;
   DIAG_POP_NEEDS_COMMENT;
diff --git a/sysdeps/ieee754/ldbl-96/k_tanl.c b/sysdeps/ieee754/ldbl-96/k_tanl.c
index 43a5aa4423..462795574f 100644
--- a/sysdeps/ieee754/ldbl-96/k_tanl.c
+++ b/sysdeps/ieee754/ldbl-96/k_tanl.c
@@ -140,7 +140,7 @@ __kernel_tanl (long double x, long double y, int iy)
         uninitialized although in the cases where it is used it has
         always been set.  */
       DIAG_PUSH_NEEDS_COMMENT;
-      DIAG_IGNORE_NEEDS_COMMENT (4.8, "-Wmaybe-uninitialized");
+      DIAG_IGNORE_NEEDS_COMMENT_GCC (4.8, "-Wmaybe-uninitialized");
       if (sign < 0)
 	w = -w;
       DIAG_POP_NEEDS_COMMENT;
diff --git a/sysdeps/ieee754/soft-fp/s_ddivl.c b/sysdeps/ieee754/soft-fp/s_ddivl.c
index 07a6210319..e34244baf5 100644
--- a/sysdeps/ieee754/soft-fp/s_ddivl.c
+++ b/sysdeps/ieee754/soft-fp/s_ddivl.c
@@ -37,7 +37,7 @@
    versions of GCC, it may be where R is defined using a macro or it
    may be where the macro is defined.  This happens only with -O1.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (8, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (8, "-Wmaybe-uninitialized");
 #include <soft-fp.h>
 #include <double.h>
 #include <quad.h>
diff --git a/sysdeps/ieee754/soft-fp/s_dfmal.c b/sysdeps/ieee754/soft-fp/s_dfmal.c
index 9f537c527d..05fb1a7585 100644
--- a/sysdeps/ieee754/soft-fp/s_dfmal.c
+++ b/sysdeps/ieee754/soft-fp/s_dfmal.c
@@ -37,7 +37,7 @@
    it may be where R is defined using a macro or it may be where the
    macro is defined.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (4.9, "-Wmaybe-uninitialized");
 
 #include <soft-fp.h>
 #include <double.h>
diff --git a/sysdeps/ieee754/soft-fp/s_dsqrtl.c b/sysdeps/ieee754/soft-fp/s_dsqrtl.c
index 2b78065823..2e568009a4 100644
--- a/sysdeps/ieee754/soft-fp/s_dsqrtl.c
+++ b/sysdeps/ieee754/soft-fp/s_dsqrtl.c
@@ -35,7 +35,7 @@
    does not see that they are set in all cases where they are used,
    resulting in warnings that they may be used uninitialized.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (7, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (7, "-Wmaybe-uninitialized");
 #include <soft-fp.h>
 #include <double.h>
 #include <quad.h>
diff --git a/sysdeps/ieee754/soft-fp/s_fdiv.c b/sysdeps/ieee754/soft-fp/s_fdiv.c
index 8c92aa6fb2..4511c5ef67 100644
--- a/sysdeps/ieee754/soft-fp/s_fdiv.c
+++ b/sysdeps/ieee754/soft-fp/s_fdiv.c
@@ -34,7 +34,7 @@
    versions of GCC, it may be where R is defined using a macro or it
    may be where the macro is defined.  This happens only with -O1.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (8, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (8, "-Wmaybe-uninitialized");
 #include <soft-fp.h>
 #include <single.h>
 #include <double.h>
diff --git a/sysdeps/ieee754/soft-fp/s_fdivl.c b/sysdeps/ieee754/soft-fp/s_fdivl.c
index b99c9e9335..54d4b760f5 100644
--- a/sysdeps/ieee754/soft-fp/s_fdivl.c
+++ b/sysdeps/ieee754/soft-fp/s_fdivl.c
@@ -33,7 +33,7 @@
    versions of GCC, it may be where R is defined using a macro or it
    may be where the macro is defined.  This happens only with -O1.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (8, "-Wmaybe-uninitialized");
+(8);
 #include <soft-fp.h>
 #include <single.h>
 #include <quad.h>
diff --git a/sysdeps/ieee754/soft-fp/s_ffma.c b/sysdeps/ieee754/soft-fp/s_ffma.c
index f63f4e2418..be3cf0caf5 100644
--- a/sysdeps/ieee754/soft-fp/s_ffma.c
+++ b/sysdeps/ieee754/soft-fp/s_ffma.c
@@ -35,7 +35,7 @@
    it may be where R is defined using a macro or it may be where the
    macro is defined.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (4.9, "-Wmaybe-uninitialized");
 
 #include <soft-fp.h>
 #include <single.h>
diff --git a/sysdeps/ieee754/soft-fp/s_ffmal.c b/sysdeps/ieee754/soft-fp/s_ffmal.c
index 6d723ed046..f3785b1a5b 100644
--- a/sysdeps/ieee754/soft-fp/s_ffmal.c
+++ b/sysdeps/ieee754/soft-fp/s_ffmal.c
@@ -33,7 +33,7 @@
    it may be where R is defined using a macro or it may be where the
    macro is defined.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (4.9, "-Wmaybe-uninitialized");
 
 #include <soft-fp.h>
 #include <single.h>
diff --git a/sysdeps/ieee754/soft-fp/s_fma.c b/sysdeps/ieee754/soft-fp/s_fma.c
index 67e31e6209..ffcbaf48b3 100644
--- a/sysdeps/ieee754/soft-fp/s_fma.c
+++ b/sysdeps/ieee754/soft-fp/s_fma.c
@@ -42,7 +42,7 @@
    it may be where R is defined using a macro or it may be where the
    macro is defined.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (4.9, "-Wmaybe-uninitialized");
 
 #include "soft-fp.h"
 #include "double.h"
diff --git a/sysdeps/ieee754/soft-fp/s_fmaf.c b/sysdeps/ieee754/soft-fp/s_fmaf.c
index a57e949fa5..95e5a34e1b 100644
--- a/sysdeps/ieee754/soft-fp/s_fmaf.c
+++ b/sysdeps/ieee754/soft-fp/s_fmaf.c
@@ -37,7 +37,7 @@
    it may be where R is defined using a macro or it may be where the
    macro is defined.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (4.9, "-Wmaybe-uninitialized");
 
 #include "soft-fp.h"
 #include "single.h"
diff --git a/sysdeps/ieee754/soft-fp/s_fmal.c b/sysdeps/ieee754/soft-fp/s_fmal.c
index 1973a21f19..22ffc7cebd 100644
--- a/sysdeps/ieee754/soft-fp/s_fmal.c
+++ b/sysdeps/ieee754/soft-fp/s_fmal.c
@@ -40,7 +40,7 @@
    it may be where R is defined using a macro or it may be where the
    macro is defined.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (4.9, "-Wmaybe-uninitialized");
 
 #include "soft-fp.h"
 #include "quad.h"
diff --git a/sysdeps/ieee754/soft-fp/s_fsqrt.c b/sysdeps/ieee754/soft-fp/s_fsqrt.c
index f64ae8262c..5162bd17db 100644
--- a/sysdeps/ieee754/soft-fp/s_fsqrt.c
+++ b/sysdeps/ieee754/soft-fp/s_fsqrt.c
@@ -33,7 +33,7 @@
    versions of GCC, it may be where R is defined using a macro or it
    may be where the macro is defined.  This happens only with -O1.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (8, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (8, "-Wmaybe-uninitialized");
 #include <soft-fp.h>
 #include <single.h>
 #include <double.h>
diff --git a/sysdeps/unix/sysv/linux/convert_scm_timestamps.c b/sysdeps/unix/sysv/linux/convert_scm_timestamps.c
index 3720bd9591..399fe597e3 100644
--- a/sysdeps/unix/sysv/linux/convert_scm_timestamps.c
+++ b/sysdeps/unix/sysv/linux/convert_scm_timestamps.c
@@ -51,7 +51,7 @@ __convert_scm_timestamps (struct msghdr *msg, socklen_t msgsize)
      (done by either COMPAT_SO_TIMESTAMP_OLD or COMPAT_SO_TIMESTAMPNS_OLD)
      which will fallthrough to 'common' label.  */
   DIAG_PUSH_NEEDS_COMMENT;
-  DIAG_IGNORE_NEEDS_COMMENT (6, "-Wmaybe-uninitialized");
+  DIAG_IGNORE_NEEDS_COMMENT_GCC (6, "-Wmaybe-uninitialized");
   int64_t tvts[2];
   DIAG_POP_NEEDS_COMMENT;
   int32_t tmp[2];

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [glibc/azanella/clang] Suppress -Wmaybe-uninitialized only for gcc
@ 2024-04-17 20:04 Adhemerval Zanella
  0 siblings, 0 replies; 7+ messages in thread
From: Adhemerval Zanella @ 2024-04-17 20:04 UTC (permalink / raw)
  To: glibc-cvs

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=279ce840452e6da645579ca4169c0f0c25cac47f

commit 279ce840452e6da645579ca4169c0f0c25cac47f
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Wed Mar 9 15:51:50 2022 -0300

    Suppress -Wmaybe-uninitialized only for gcc
    
    The warning is not supported by clang.

Diff:
---
 elf/dl-load.c                                    |  2 +-
 hurd/hurdsig.c                                   |  2 +-
 iconv/loop.c                                     |  2 +-
 iconvdata/iso-2022-cn-ext.c                      |  2 +-
 include/libc-diag.h                              |  3 +++
 inet/net-internal.h                              |  2 +-
 locale/weight.h                                  |  6 +++---
 locale/weightwc.h                                |  8 ++++----
 malloc/malloc-check.c                            |  2 +-
 nis/nis_table.c                                  |  2 +-
 nptl/tst-thread-setspecific.c                    |  2 +-
 nptl_db/thread_dbP.h                             |  2 +-
 posix/fnmatch_loop.c                             |  6 +++---
 posix/regexec.c                                  |  2 +-
 resolv/res_send.c                                | 10 +++++-----
 stdio-common/vfscanf-internal.c                  |  2 +-
 stdlib/bug-getcontext.c                          |  2 +-
 string/strcoll_l.c                               |  4 ++--
 string/wordcopy.c                                |  6 +++---
 sunrpc/clnt_udp.c                                |  2 +-
 sysdeps/ieee754/dbl-64/e_lgamma_r.c              |  2 +-
 sysdeps/ieee754/dbl-64/s_log1p.c                 |  2 +-
 sysdeps/ieee754/flt-32/e_lgammaf_r.c             |  2 +-
 sysdeps/ieee754/flt-32/s_log1pf.c                |  2 +-
 sysdeps/ieee754/ldbl-128/k_tanl.c                |  2 +-
 sysdeps/ieee754/ldbl-128ibm/k_tanl.c             |  2 +-
 sysdeps/ieee754/ldbl-96/e_lgammal_r.c            |  2 +-
 sysdeps/ieee754/ldbl-96/k_tanl.c                 |  2 +-
 sysdeps/ieee754/soft-fp/s_ddivl.c                |  2 +-
 sysdeps/ieee754/soft-fp/s_dfmal.c                |  2 +-
 sysdeps/ieee754/soft-fp/s_dsqrtl.c               |  2 +-
 sysdeps/ieee754/soft-fp/s_fdiv.c                 |  2 +-
 sysdeps/ieee754/soft-fp/s_fdivl.c                |  3 +--
 sysdeps/ieee754/soft-fp/s_ffma.c                 |  2 +-
 sysdeps/ieee754/soft-fp/s_ffmal.c                |  2 +-
 sysdeps/ieee754/soft-fp/s_fma.c                  |  2 +-
 sysdeps/ieee754/soft-fp/s_fmaf.c                 |  2 +-
 sysdeps/ieee754/soft-fp/s_fmal.c                 |  2 +-
 sysdeps/ieee754/soft-fp/s_fsqrt.c                |  2 +-
 sysdeps/unix/sysv/linux/convert_scm_timestamps.c |  2 +-
 40 files changed, 56 insertions(+), 54 deletions(-)

diff --git a/elf/dl-load.c b/elf/dl-load.c
index a34cb3559c..a3a175e4b9 100644
--- a/elf/dl-load.c
+++ b/elf/dl-load.c
@@ -1148,7 +1148,7 @@ _dl_map_object_from_fd (const char *name, const char *origname, int fd,
 	     ‘(((char *)loadcmds.113_68 + _933 + 16))[329406144173384849].mapend’ may be used uninitialized [-Wmaybe-uninitialized]
 	     See: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106008
 	   */
-	  DIAG_IGNORE_NEEDS_COMMENT (11, "-Wmaybe-uninitialized");
+	  DIAG_IGNORE_NEEDS_COMMENT_GCC (11, "-Wmaybe-uninitialized");
 #endif
 	  /* Determine whether there is a gap between the last segment
 	     and this one.  */
diff --git a/hurd/hurdsig.c b/hurd/hurdsig.c
index 8b1928d1a1..a7b7bbcc58 100644
--- a/hurd/hurdsig.c
+++ b/hurd/hurdsig.c
@@ -376,7 +376,7 @@ interrupted_reply_port_location (thread_t thread,
   /* GCC 6 and before seem to be confused by the setjmp call inside
      _hurdsig_catch_memory_fault and think that we may be returning a second
      time to here with portloc uninitialized (but we never do). */
-  DIAG_IGNORE_NEEDS_COMMENT (6, "-Wmaybe-uninitialized");
+  DIAG_IGNORE_NEEDS_COMMENT_GCC (6, "-Wmaybe-uninitialized");
   /* Fault now if this pointer is bogus.  */
   *(volatile mach_port_t *) portloc = *portloc;
   DIAG_POP_NEEDS_COMMENT;
diff --git a/iconv/loop.c b/iconv/loop.c
index 5340dafc70..ade4185f53 100644
--- a/iconv/loop.c
+++ b/iconv/loop.c
@@ -192,7 +192,7 @@
    has a comment referencing this diagnostic disabling; updates in one
    place may require updates in the other.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_Os_NEEDS_COMMENT (7, "-Wmaybe-uninitialized");
+DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (7, "-Wmaybe-uninitialized");
 /* Handling of Unicode 3.1 TAG characters.  Unicode recommends
    "If language codes are not relevant to the particular processing
     operation, then they should be ignored."  This macro is usually
diff --git a/iconvdata/iso-2022-cn-ext.c b/iconvdata/iso-2022-cn-ext.c
index cce29b1969..e1d892dc1c 100644
--- a/iconvdata/iso-2022-cn-ext.c
+++ b/iconvdata/iso-2022-cn-ext.c
@@ -403,7 +403,7 @@ enum
    involved in determining the code page and is the indicator that
    tmpbuf[2] is initialized.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_Os_NEEDS_COMMENT (5, "-Wmaybe-uninitialized");
+DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (5, "-Wmaybe-uninitialized");
 #define BODY \
   {									      \
     uint32_t ch;							      \
diff --git a/include/libc-diag.h b/include/libc-diag.h
index 7666a386f3..49e7457c6e 100644
--- a/include/libc-diag.h
+++ b/include/libc-diag.h
@@ -86,9 +86,12 @@
 #ifndef __clang__
 # define DIAG_IGNORE_NEEDS_COMMENT_GCC(VERSION, WARNING) \
   DIAG_IGNORE_NEEDS_COMMENT (VERSION, WARNING)
+# define DIAG_IGNORE_Os_NEEDS_COMMENT_GCC(VERSION, WARNING) \
+  DIAG_IGNORE_Os_NEEDS_COMMENT (VERSION, WARNING)
 # define DIAG_IGNORE_NEEDS_COMMENT_CLANG(version, option)
 #else
 # define DIAG_IGNORE_NEEDS_COMMENT_GCC(VERSION, WARNING)
+# define DIAG_IGNORE_Os_NEEDS_COMMENT_GCC(VERSION, WARNING)
 # define DIAG_IGNORE_NEEDS_COMMENT_CLANG(version, option) \
   _Pragma (_DIAG_STR (clang diagnostic ignored option))
 #endif
diff --git a/inet/net-internal.h b/inet/net-internal.h
index f5749a8662..ad71fbecf0 100644
--- a/inet/net-internal.h
+++ b/inet/net-internal.h
@@ -106,7 +106,7 @@ __deadline_is_infinite (struct deadline deadline)
  *    https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91691
  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (9, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (9, "-Wmaybe-uninitialized");
 
 /* Return true if the current time is at the deadline or past it.  */
 static inline bool
diff --git a/locale/weight.h b/locale/weight.h
index 4c5e8b7a73..7cabfec2bb 100644
--- a/locale/weight.h
+++ b/locale/weight.h
@@ -32,7 +32,7 @@ findidx (const int32_t *table,
      This uninitialized use is impossible for the same reason
      as described in comments in locale/weightwc.h.  */
   DIAG_PUSH_NEEDS_COMMENT;
-  DIAG_IGNORE_Os_NEEDS_COMMENT (8, "-Wmaybe-uninitialized");
+  DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (8, "-Wmaybe-uninitialized");
   int32_t i = table[*(*cpp)++];
   DIAG_POP_NEEDS_COMMENT;
   const unsigned char *cp;
@@ -75,7 +75,7 @@ findidx (const int32_t *table,
 	     of -1 for len at the same time which means that this loop
 	     never executes.  */
 	  DIAG_PUSH_NEEDS_COMMENT;
-	  DIAG_IGNORE_Os_NEEDS_COMMENT (5, "-Wmaybe-uninitialized");
+	  DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (5, "-Wmaybe-uninitialized");
 	  for (cnt = 0; cnt < nhere && cnt < len; ++cnt)
 	    if (cp[cnt] != usrc[cnt])
 	      break;
@@ -144,7 +144,7 @@ findidx (const int32_t *table,
 		     is impossible for the same reason as described
 		     above.  */
 		  DIAG_PUSH_NEEDS_COMMENT;
-		  DIAG_IGNORE_Os_NEEDS_COMMENT (7, "-Wmaybe-uninitialized");
+		  DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (7, "-Wmaybe-uninitialized");
 		  offset += usrc[cnt] - cp[cnt];
 		  DIAG_POP_NEEDS_COMMENT;
 		}
diff --git a/locale/weightwc.h b/locale/weightwc.h
index 5fce8d4448..7072e19017 100644
--- a/locale/weightwc.h
+++ b/locale/weightwc.h
@@ -33,7 +33,7 @@ findidx (const int32_t *table,
      called except in cases where those fields have been
      initialized.  */
   DIAG_PUSH_NEEDS_COMMENT;
-  DIAG_IGNORE_Os_NEEDS_COMMENT (7, "-Wmaybe-uninitialized");
+  DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (7, "-Wmaybe-uninitialized");
   wint_t ch = *(*cpp)++;
   DIAG_POP_NEEDS_COMMENT;
   int32_t i = __collidx_table_lookup ((const char *) table, ch);
@@ -74,7 +74,7 @@ findidx (const int32_t *table,
 	     of -1 for len at the same time which means that this loop
 	     never executes.  */
 	  DIAG_PUSH_NEEDS_COMMENT;
-	  DIAG_IGNORE_Os_NEEDS_COMMENT (5, "-Wmaybe-uninitialized");
+	  DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (5, "-Wmaybe-uninitialized");
 	  for (cnt = 0; cnt < nhere && cnt < len; ++cnt)
 	    if (cp[cnt] != usrc[cnt])
 	      break;
@@ -102,7 +102,7 @@ findidx (const int32_t *table,
 	     might be used uninitialized.  This is impossible for the
 	     same reason as described above.  */
 	  DIAG_PUSH_NEEDS_COMMENT;
-	  DIAG_IGNORE_Os_NEEDS_COMMENT (7, "-Wmaybe-uninitialized");
+	  DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (7, "-Wmaybe-uninitialized");
 	  for (cnt = 0; cnt < nhere - 1 && cnt < len; ++cnt)
 	    if (cp[cnt] != usrc[cnt])
 	      break;
@@ -119,7 +119,7 @@ findidx (const int32_t *table,
 	     might be used uninitialized.  This is impossible for the
 	     same reason as described above.  */
 	  DIAG_PUSH_NEEDS_COMMENT;
-	  DIAG_IGNORE_Os_NEEDS_COMMENT (7, "-Wmaybe-uninitialized");
+	  DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (7, "-Wmaybe-uninitialized");
 	  if (cp[nhere - 1] > usrc[nhere - 1])
 	    {
 	      cp += 2 * nhere;
diff --git a/malloc/malloc-check.c b/malloc/malloc-check.c
index da1158b333..0ccc7672d9 100644
--- a/malloc/malloc-check.c
+++ b/malloc/malloc-check.c
@@ -319,7 +319,7 @@ realloc_check (void *oldmem, size_t bytes)
 #if __GNUC_PREREQ (7, 0)
   /* GCC 7 warns about magic_p may be used uninitialized.  But we never
      reach here if magic_p is uninitialized.  */
-  DIAG_IGNORE_NEEDS_COMMENT (7, "-Wmaybe-uninitialized");
+  DIAG_IGNORE_NEEDS_COMMENT_GCC (7, "-Wmaybe-uninitialized");
 #endif
   /* mem2chunk_check changed the magic byte in the old chunk.
      If newmem is NULL, then the old chunk will still be used though,
diff --git a/nis/nis_table.c b/nis/nis_table.c
index 56c1aa262d..399c16cb86 100644
--- a/nis/nis_table.c
+++ b/nis/nis_table.c
@@ -180,7 +180,7 @@ __follow_path (char **tablepath, char **tableptr, struct ib_request *ibreq,
   /* Since tableptr is only set here, and it's set when tablepath is NULL,
      which it is initially defined as, we know it will always be set here.  */
   DIAG_PUSH_NEEDS_COMMENT;
-  DIAG_IGNORE_NEEDS_COMMENT (4.7, "-Wmaybe-uninitialized");
+  DIAG_IGNORE_NEEDS_COMMENT_GCC (4.7, "-Wmaybe-uninitialized");
 
   if (*tableptr == NULL)
     return NIS_NOTFOUND;
diff --git a/nptl/tst-thread-setspecific.c b/nptl/tst-thread-setspecific.c
index 462c9f0d2b..0008a8ee2f 100644
--- a/nptl/tst-thread-setspecific.c
+++ b/nptl/tst-thread-setspecific.c
@@ -25,7 +25,7 @@
    See BZ #27714.  */
 
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (6, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (6, "-Wmaybe-uninitialized");
 DIAG_IGNORE_NEEDS_COMMENT (6, "-Wuninitialized");
 
 static int
diff --git a/nptl_db/thread_dbP.h b/nptl_db/thread_dbP.h
index 72d5558845..aa9b614cb0 100644
--- a/nptl_db/thread_dbP.h
+++ b/nptl_db/thread_dbP.h
@@ -176,7 +176,7 @@ extern ps_err_e td_mod_lookup (struct ps_prochandle *ps, const char *modname,
    when DB_GET_FIELD_ADDRESS is called with a slot for ptr, the slot is
    always initialized.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_Os_NEEDS_COMMENT (5, "-Wmaybe-uninitialized");
+DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (5, "-Wmaybe-uninitialized");
 #define DB_GET_FIELD_ADDRESS(var, ta, ptr, type, field, idx) \
   ((var) = (ptr), _td_locate_field ((ta), (ta)->ta_field_##type##_##field, \
 				    SYM_##type##_FIELD_##field, \
diff --git a/posix/fnmatch_loop.c b/posix/fnmatch_loop.c
index 6994a09ab5..17fcb58bf4 100644
--- a/posix/fnmatch_loop.c
+++ b/posix/fnmatch_loop.c
@@ -560,7 +560,7 @@ FCT (const CHAR *pattern, const CHAR *string, const CHAR *string_end,
 				   above it will be properly set by the loop.
 				   */
                                 DIAG_PUSH_NEEDS_COMMENT;
-                                DIAG_IGNORE_Os_NEEDS_COMMENT (8, "-Wmaybe-uninitialized");
+                                DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (8, "-Wmaybe-uninitialized");
                                 cold = wextra[1 + wextra[0]];
                                 DIAG_POP_NEEDS_COMMENT;
 # else
@@ -745,7 +745,7 @@ FCT (const CHAR *pattern, const CHAR *string, const CHAR *string_end,
                                        means that it was properly set in the
                                        loop above.   */
                                     DIAG_PUSH_NEEDS_COMMENT;
-                                    DIAG_IGNORE_Os_NEEDS_COMMENT (8, "-Wmaybe-uninitialized");
+                                    DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (8, "-Wmaybe-uninitialized");
                                     cend = wextra[1 + wextra[0]];
                                     DIAG_POP_NEEDS_COMMENT;
 # else
@@ -754,7 +754,7 @@ FCT (const CHAR *pattern, const CHAR *string, const CHAR *string_end,
 				       wextra above it will be properly set by
 				       the loop.   */
                                     DIAG_PUSH_NEEDS_COMMENT;
-                                    DIAG_IGNORE_Os_NEEDS_COMMENT (8, "-Wmaybe-uninitialized");
+                                    DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (8, "-Wmaybe-uninitialized");
                                     idx += 1 + extra[idx];
                                     DIAG_POP_NEEDS_COMMENT;
                                     /* Adjust for the alignment.  */
diff --git a/posix/regexec.c b/posix/regexec.c
index 180e3bce40..13add301f5 100644
--- a/posix/regexec.c
+++ b/posix/regexec.c
@@ -3772,7 +3772,7 @@ check_node_accept_bytes (const re_dfa_t *dfa, Idx node_idx,
 		 however the loop will be executed iff ncoll_syms is larger
 		 than 0,which means extra will be already initialized.  */
 	      DIAG_PUSH_NEEDS_COMMENT;
-	      DIAG_IGNORE_Os_NEEDS_COMMENT (8, "-Wmaybe-uninitialized");
+	      DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (8, "-Wmaybe-uninitialized");
 	      const unsigned char *coll_sym = extra + cset->coll_syms[i];
 	      DIAG_POP_NEEDS_COMMENT;
 	      /* Compare the length of input collating element and
diff --git a/resolv/res_send.c b/resolv/res_send.c
index fb0217204a..c314d9762a 100644
--- a/resolv/res_send.c
+++ b/resolv/res_send.c
@@ -266,7 +266,7 @@ __res_context_send (struct resolv_context *ctx,
 	   Here the variable n is set to the return value of send_vc.
 	   See below.  */
 	DIAG_PUSH_NEEDS_COMMENT;
-	DIAG_IGNORE_NEEDS_COMMENT (9, "-Wmaybe-uninitialized");
+	DIAG_IGNORE_NEEDS_COMMENT_GCC (9, "-Wmaybe-uninitialized");
 	int n;
 	DIAG_POP_NEEDS_COMMENT;
 
@@ -364,7 +364,7 @@ __res_context_send (struct resolv_context *ctx,
 				return (-1);
 			/* See comment at the declaration of n.  */
 			DIAG_PUSH_NEEDS_COMMENT;
-			DIAG_IGNORE_NEEDS_COMMENT (9, "-Wmaybe-uninitialized");
+			DIAG_IGNORE_NEEDS_COMMENT_GCC (9, "-Wmaybe-uninitialized");
 			if (n == 0 && (buf2 == NULL || *resplen2 == 0))
 				goto next_ns;
 			DIAG_POP_NEEDS_COMMENT;
@@ -388,7 +388,7 @@ __res_context_send (struct resolv_context *ctx,
 
 		/* See comment at the declaration of n.  Note: resplen = n;  */
 		DIAG_PUSH_NEEDS_COMMENT;
-		DIAG_IGNORE_NEEDS_COMMENT (9, "-Wmaybe-uninitialized");
+		DIAG_IGNORE_NEEDS_COMMENT_GCC (9, "-Wmaybe-uninitialized");
 		/* Mask the AD bit in both responses unless it is
 		   marked trusted.  */
 		if (resplen > HFIXEDSZ)
@@ -580,7 +580,7 @@ send_vc(res_state statp,
 	   a false-positive.
 	 */
 	DIAG_PUSH_NEEDS_COMMENT;
-	DIAG_IGNORE_NEEDS_COMMENT (5, "-Wmaybe-uninitialized");
+	DIAG_IGNORE_NEEDS_COMMENT_GCC (5, "-Wmaybe-uninitialized");
 	int resplen;
 	DIAG_POP_NEEDS_COMMENT;
 	struct iovec iov[4];
@@ -852,7 +852,7 @@ reopen (res_state statp, int *terrno, int ns)
 		   the function return -1 before control flow reaches
 		   the call to connect with slen.  */
 		DIAG_PUSH_NEEDS_COMMENT;
-		DIAG_IGNORE_Os_NEEDS_COMMENT (5, "-Wmaybe-uninitialized");
+		DIAG_IGNORE_NEEDS_COMMENT_GCC (5, "-Wmaybe-uninitialized");
 		if (__connect (EXT (statp).nssocks[ns], nsap, slen) < 0) {
 		DIAG_POP_NEEDS_COMMENT;
 			__res_iclose(statp, false);
diff --git a/stdio-common/vfscanf-internal.c b/stdio-common/vfscanf-internal.c
index 1b82deffa7..eb66506ca3 100644
--- a/stdio-common/vfscanf-internal.c
+++ b/stdio-common/vfscanf-internal.c
@@ -1608,7 +1608,7 @@ __vfscanf_internal (FILE *s, const char *format, va_list argptr,
 			 above, but the test for "map != NULL" is done
 			 inside the loop here and outside the loop there.  */
 		      DIAG_PUSH_NEEDS_COMMENT;
-		      DIAG_IGNORE_NEEDS_COMMENT (4.7, "-Wmaybe-uninitialized");
+		      DIAG_IGNORE_NEEDS_COMMENT_GCC (4.7, "-Wmaybe-uninitialized");
 
 		      if (__glibc_unlikely (map != NULL))
 			wcdigits[n] = digits_extended[n];
diff --git a/stdlib/bug-getcontext.c b/stdlib/bug-getcontext.c
index 55c681c480..9e5e6c7e1c 100644
--- a/stdlib/bug-getcontext.c
+++ b/stdlib/bug-getcontext.c
@@ -56,7 +56,7 @@ do_test (void)
      in local variables being clobbered on the second return from
      getcontext), in fact an uninitialized use is not possible.  */
   DIAG_PUSH_NEEDS_COMMENT;
-  DIAG_IGNORE_NEEDS_COMMENT (5, "-Wmaybe-uninitialized");
+  DIAG_IGNORE_NEEDS_COMMENT_GCC (5, "-Wmaybe-uninitialized");
   int mask = fegetexcept ();
   if (mask != except_mask)
     {
diff --git a/string/strcoll_l.c b/string/strcoll_l.c
index 06aa1423c0..d68b12e79a 100644
--- a/string/strcoll_l.c
+++ b/string/strcoll_l.c
@@ -180,7 +180,7 @@ get_next_seq (coll_seq *seq, int nrules, const unsigned char *rulesets,
 	 ensures that seq->save_idx was saved to first and contains a
 	 valid value.  */
       DIAG_PUSH_NEEDS_COMMENT;
-      DIAG_IGNORE_Os_NEEDS_COMMENT (5, "-Wmaybe-uninitialized");
+      DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (5, "-Wmaybe-uninitialized");
       len = weights[idx++];
       DIAG_POP_NEEDS_COMMENT;
       /* Skip over indices of previous levels.  */
@@ -299,7 +299,7 @@ STRCOLL (const STRING_TYPE *s1, const STRING_TYPE *s2, locale_t l)
      seq2.  This uninitialized use is impossible for the same reason
      as described in comments in locale/weightwc.h.  */
   DIAG_PUSH_NEEDS_COMMENT;
-  DIAG_IGNORE_Os_NEEDS_COMMENT (7, "-Wmaybe-uninitialized");
+  DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (7, "-Wmaybe-uninitialized");
   coll_seq seq1, seq2;
   DIAG_POP_NEEDS_COMMENT;
   seq1.len = 0;
diff --git a/string/wordcopy.c b/string/wordcopy.c
index 4e77cdb132..083daa658c 100644
--- a/string/wordcopy.c
+++ b/string/wordcopy.c
@@ -29,7 +29,7 @@
    Since the usage is within the MERGE macro we disable the
    warning in the definition, but only in this file.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (6, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (6, "-Wmaybe-uninitialized");
 #include <memcopy.h>
 DIAG_POP_NEEDS_COMMENT;
 
@@ -112,7 +112,7 @@ WORDCOPY_FWD_ALIGNED (long int dstp, long int srcp, size_t len)
 	 case. The switch case always sets 'a1' and all previous loop
 	 iterations will also have set 'a1' before the use.  */
       DIAG_PUSH_NEEDS_COMMENT;
-      DIAG_IGNORE_NEEDS_COMMENT (6, "-Wmaybe-uninitialized");
+      DIAG_IGNORE_NEEDS_COMMENT_GCC (6, "-Wmaybe-uninitialized");
       ((op_t *) dstp)[0] = a1;
       DIAG_POP_NEEDS_COMMENT;
     do7:
@@ -313,7 +313,7 @@ WORDCOPY_BWD_ALIGNED (long int dstp, long int srcp, size_t len)
       a0 = ((op_t *) srcp)[7];
       /* Check the comment on WORDCOPY_FWD_ALIGNED.  */
       DIAG_PUSH_NEEDS_COMMENT;
-      DIAG_IGNORE_NEEDS_COMMENT (6, "-Wmaybe-uninitialized");
+      DIAG_IGNORE_NEEDS_COMMENT_GCC (6, "-Wmaybe-uninitialized");
       ((op_t *) dstp)[7] = a1;
       DIAG_POP_NEEDS_COMMENT;
     do7:
diff --git a/sunrpc/clnt_udp.c b/sunrpc/clnt_udp.c
index ee79b09b40..4353e5da18 100644
--- a/sunrpc/clnt_udp.c
+++ b/sunrpc/clnt_udp.c
@@ -299,7 +299,7 @@ clntudp_call (/* client handle */
      inet/net-internal.h because in some other configurations GCC
      gives the warning in an inline function.  */
   DIAG_PUSH_NEEDS_COMMENT;
-  DIAG_IGNORE_NEEDS_COMMENT (10, "-Wmaybe-uninitialized");
+  DIAG_IGNORE_NEEDS_COMMENT_GCC (10, "-Wmaybe-uninitialized");
   struct deadline total_deadline; /* Determined once by overall timeout.  */
   DIAG_POP_NEEDS_COMMENT;
   struct deadline response_deadline; /* Determined anew for each query.  */
diff --git a/sysdeps/ieee754/dbl-64/e_lgamma_r.c b/sysdeps/ieee754/dbl-64/e_lgamma_r.c
index 72c68b6682..c298c8ca03 100644
--- a/sysdeps/ieee754/dbl-64/e_lgamma_r.c
+++ b/sysdeps/ieee754/dbl-64/e_lgamma_r.c
@@ -304,7 +304,7 @@ __ieee754_lgamma_r(double x, int *signgamp)
 	   although in the cases where it is used it has always been
 	   set.  */
 	DIAG_PUSH_NEEDS_COMMENT;
-	DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+	DIAG_IGNORE_NEEDS_COMMENT_GCC (4.9, "-Wmaybe-uninitialized");
 	if(hx<0) r = nadj - r;
 	DIAG_POP_NEEDS_COMMENT;
 	return r;
diff --git a/sysdeps/ieee754/dbl-64/s_log1p.c b/sysdeps/ieee754/dbl-64/s_log1p.c
index eeb0af859f..f52c0124fc 100644
--- a/sysdeps/ieee754/dbl-64/s_log1p.c
+++ b/sysdeps/ieee754/dbl-64/s_log1p.c
@@ -205,7 +205,7 @@ __log1p (double x)
 	 must be 0 for c to be uninitialized and we handled that
 	 computation earlier without using c.  */
       DIAG_PUSH_NEEDS_COMMENT;
-      DIAG_IGNORE_Os_NEEDS_COMMENT (7, "-Wmaybe-uninitialized");
+      DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (7, "-Wmaybe-uninitialized");
       return k * ln2_hi - ((hfsq - (s * (hfsq + R) + (k * ln2_lo + c))) - f);
       DIAG_POP_NEEDS_COMMENT;
     }
diff --git a/sysdeps/ieee754/flt-32/e_lgammaf_r.c b/sysdeps/ieee754/flt-32/e_lgammaf_r.c
index a1a3a60454..77dc54eaeb 100644
--- a/sysdeps/ieee754/flt-32/e_lgammaf_r.c
+++ b/sysdeps/ieee754/flt-32/e_lgammaf_r.c
@@ -239,7 +239,7 @@ __ieee754_lgammaf_r(float x, int *signgamp)
 	   although in the cases where it is used it has always been
 	   set.  */
 	DIAG_PUSH_NEEDS_COMMENT;
-	DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+	DIAG_IGNORE_NEEDS_COMMENT_GCC (4.9, "-Wmaybe-uninitialized");
 	if(hx<0) r = nadj - r;
 	DIAG_POP_NEEDS_COMMENT;
 	return r;
diff --git a/sysdeps/ieee754/flt-32/s_log1pf.c b/sysdeps/ieee754/flt-32/s_log1pf.c
index 555f0f82c8..cddc0f1e09 100644
--- a/sysdeps/ieee754/flt-32/s_log1pf.c
+++ b/sysdeps/ieee754/flt-32/s_log1pf.c
@@ -108,7 +108,7 @@ __log1pf(float x)
 	       because k must be 0 for c to be uninitialized and we
 	       handled that computation earlier without using c.  */
 	    DIAG_PUSH_NEEDS_COMMENT;
-	    DIAG_IGNORE_Os_NEEDS_COMMENT (7, "-Wmaybe-uninitialized");
+	    DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (7, "-Wmaybe-uninitialized");
 	    return k * ln2_hi - ((hfsq - (s * (hfsq + R)
 					  + (k * ln2_lo + c))) - f);
 	    DIAG_POP_NEEDS_COMMENT;
diff --git a/sysdeps/ieee754/ldbl-128/k_tanl.c b/sysdeps/ieee754/ldbl-128/k_tanl.c
index 8e93626a89..af10fbc64b 100644
--- a/sysdeps/ieee754/ldbl-128/k_tanl.c
+++ b/sysdeps/ieee754/ldbl-128/k_tanl.c
@@ -143,7 +143,7 @@ __kernel_tanl (_Float128 x, _Float128 y, int iy)
 	 uninitialized although in the cases where it is used it has
 	 always been set.  */
       DIAG_PUSH_NEEDS_COMMENT;
-      DIAG_IGNORE_NEEDS_COMMENT (5, "-Wmaybe-uninitialized");
+      DIAG_IGNORE_NEEDS_COMMENT_GCC (5, "-Wmaybe-uninitialized");
       if (sign < 0)
 	w = -w;
       DIAG_POP_NEEDS_COMMENT;
diff --git a/sysdeps/ieee754/ldbl-128ibm/k_tanl.c b/sysdeps/ieee754/ldbl-128ibm/k_tanl.c
index cd95e46089..7a42a18e55 100644
--- a/sysdeps/ieee754/ldbl-128ibm/k_tanl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/k_tanl.c
@@ -143,7 +143,7 @@ __kernel_tanl (long double x, long double y, int iy)
 	 uninitialized although in the cases where it is used it has
 	 always been set.  */
       DIAG_PUSH_NEEDS_COMMENT;
-      DIAG_IGNORE_NEEDS_COMMENT (5, "-Wmaybe-uninitialized");
+      DIAG_IGNORE_NEEDS_COMMENT_GCC (5, "-Wmaybe-uninitialized");
       if (sign < 0)
 	w = -w;
       DIAG_POP_NEEDS_COMMENT;
diff --git a/sysdeps/ieee754/ldbl-96/e_lgammal_r.c b/sysdeps/ieee754/ldbl-96/e_lgammal_r.c
index 148c21bb8d..d4fd7f5272 100644
--- a/sysdeps/ieee754/ldbl-96/e_lgammal_r.c
+++ b/sysdeps/ieee754/ldbl-96/e_lgammal_r.c
@@ -431,7 +431,7 @@ __ieee754_lgammal_r (long double x, int *signgamp)
      in warnings that it may be used uninitialized although in the
      cases where it is used it has always been set.  */
   DIAG_PUSH_NEEDS_COMMENT;
-  DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+  DIAG_IGNORE_NEEDS_COMMENT_GCC (4.9, "-Wmaybe-uninitialized");
   if (se & 0x8000)
     r = nadj - r;
   DIAG_POP_NEEDS_COMMENT;
diff --git a/sysdeps/ieee754/ldbl-96/k_tanl.c b/sysdeps/ieee754/ldbl-96/k_tanl.c
index 43a5aa4423..462795574f 100644
--- a/sysdeps/ieee754/ldbl-96/k_tanl.c
+++ b/sysdeps/ieee754/ldbl-96/k_tanl.c
@@ -140,7 +140,7 @@ __kernel_tanl (long double x, long double y, int iy)
         uninitialized although in the cases where it is used it has
         always been set.  */
       DIAG_PUSH_NEEDS_COMMENT;
-      DIAG_IGNORE_NEEDS_COMMENT (4.8, "-Wmaybe-uninitialized");
+      DIAG_IGNORE_NEEDS_COMMENT_GCC (4.8, "-Wmaybe-uninitialized");
       if (sign < 0)
 	w = -w;
       DIAG_POP_NEEDS_COMMENT;
diff --git a/sysdeps/ieee754/soft-fp/s_ddivl.c b/sysdeps/ieee754/soft-fp/s_ddivl.c
index 07a6210319..e34244baf5 100644
--- a/sysdeps/ieee754/soft-fp/s_ddivl.c
+++ b/sysdeps/ieee754/soft-fp/s_ddivl.c
@@ -37,7 +37,7 @@
    versions of GCC, it may be where R is defined using a macro or it
    may be where the macro is defined.  This happens only with -O1.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (8, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (8, "-Wmaybe-uninitialized");
 #include <soft-fp.h>
 #include <double.h>
 #include <quad.h>
diff --git a/sysdeps/ieee754/soft-fp/s_dfmal.c b/sysdeps/ieee754/soft-fp/s_dfmal.c
index 9f537c527d..05fb1a7585 100644
--- a/sysdeps/ieee754/soft-fp/s_dfmal.c
+++ b/sysdeps/ieee754/soft-fp/s_dfmal.c
@@ -37,7 +37,7 @@
    it may be where R is defined using a macro or it may be where the
    macro is defined.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (4.9, "-Wmaybe-uninitialized");
 
 #include <soft-fp.h>
 #include <double.h>
diff --git a/sysdeps/ieee754/soft-fp/s_dsqrtl.c b/sysdeps/ieee754/soft-fp/s_dsqrtl.c
index 2b78065823..2e568009a4 100644
--- a/sysdeps/ieee754/soft-fp/s_dsqrtl.c
+++ b/sysdeps/ieee754/soft-fp/s_dsqrtl.c
@@ -35,7 +35,7 @@
    does not see that they are set in all cases where they are used,
    resulting in warnings that they may be used uninitialized.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (7, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (7, "-Wmaybe-uninitialized");
 #include <soft-fp.h>
 #include <double.h>
 #include <quad.h>
diff --git a/sysdeps/ieee754/soft-fp/s_fdiv.c b/sysdeps/ieee754/soft-fp/s_fdiv.c
index 8c92aa6fb2..4511c5ef67 100644
--- a/sysdeps/ieee754/soft-fp/s_fdiv.c
+++ b/sysdeps/ieee754/soft-fp/s_fdiv.c
@@ -34,7 +34,7 @@
    versions of GCC, it may be where R is defined using a macro or it
    may be where the macro is defined.  This happens only with -O1.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (8, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (8, "-Wmaybe-uninitialized");
 #include <soft-fp.h>
 #include <single.h>
 #include <double.h>
diff --git a/sysdeps/ieee754/soft-fp/s_fdivl.c b/sysdeps/ieee754/soft-fp/s_fdivl.c
index b99c9e9335..7a45e29149 100644
--- a/sysdeps/ieee754/soft-fp/s_fdivl.c
+++ b/sysdeps/ieee754/soft-fp/s_fdivl.c
@@ -32,8 +32,7 @@
    uninitialized.  The location of the warning differs in different
    versions of GCC, it may be where R is defined using a macro or it
    may be where the macro is defined.  This happens only with -O1.  */
-DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (8, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (8, "-Wmaybe-uninitialized");
 #include <soft-fp.h>
 #include <single.h>
 #include <quad.h>
diff --git a/sysdeps/ieee754/soft-fp/s_ffma.c b/sysdeps/ieee754/soft-fp/s_ffma.c
index f63f4e2418..be3cf0caf5 100644
--- a/sysdeps/ieee754/soft-fp/s_ffma.c
+++ b/sysdeps/ieee754/soft-fp/s_ffma.c
@@ -35,7 +35,7 @@
    it may be where R is defined using a macro or it may be where the
    macro is defined.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (4.9, "-Wmaybe-uninitialized");
 
 #include <soft-fp.h>
 #include <single.h>
diff --git a/sysdeps/ieee754/soft-fp/s_ffmal.c b/sysdeps/ieee754/soft-fp/s_ffmal.c
index 6d723ed046..f3785b1a5b 100644
--- a/sysdeps/ieee754/soft-fp/s_ffmal.c
+++ b/sysdeps/ieee754/soft-fp/s_ffmal.c
@@ -33,7 +33,7 @@
    it may be where R is defined using a macro or it may be where the
    macro is defined.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (4.9, "-Wmaybe-uninitialized");
 
 #include <soft-fp.h>
 #include <single.h>
diff --git a/sysdeps/ieee754/soft-fp/s_fma.c b/sysdeps/ieee754/soft-fp/s_fma.c
index 67e31e6209..ffcbaf48b3 100644
--- a/sysdeps/ieee754/soft-fp/s_fma.c
+++ b/sysdeps/ieee754/soft-fp/s_fma.c
@@ -42,7 +42,7 @@
    it may be where R is defined using a macro or it may be where the
    macro is defined.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (4.9, "-Wmaybe-uninitialized");
 
 #include "soft-fp.h"
 #include "double.h"
diff --git a/sysdeps/ieee754/soft-fp/s_fmaf.c b/sysdeps/ieee754/soft-fp/s_fmaf.c
index a57e949fa5..95e5a34e1b 100644
--- a/sysdeps/ieee754/soft-fp/s_fmaf.c
+++ b/sysdeps/ieee754/soft-fp/s_fmaf.c
@@ -37,7 +37,7 @@
    it may be where R is defined using a macro or it may be where the
    macro is defined.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (4.9, "-Wmaybe-uninitialized");
 
 #include "soft-fp.h"
 #include "single.h"
diff --git a/sysdeps/ieee754/soft-fp/s_fmal.c b/sysdeps/ieee754/soft-fp/s_fmal.c
index 1973a21f19..22ffc7cebd 100644
--- a/sysdeps/ieee754/soft-fp/s_fmal.c
+++ b/sysdeps/ieee754/soft-fp/s_fmal.c
@@ -40,7 +40,7 @@
    it may be where R is defined using a macro or it may be where the
    macro is defined.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (4.9, "-Wmaybe-uninitialized");
 
 #include "soft-fp.h"
 #include "quad.h"
diff --git a/sysdeps/ieee754/soft-fp/s_fsqrt.c b/sysdeps/ieee754/soft-fp/s_fsqrt.c
index f64ae8262c..5162bd17db 100644
--- a/sysdeps/ieee754/soft-fp/s_fsqrt.c
+++ b/sysdeps/ieee754/soft-fp/s_fsqrt.c
@@ -33,7 +33,7 @@
    versions of GCC, it may be where R is defined using a macro or it
    may be where the macro is defined.  This happens only with -O1.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (8, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (8, "-Wmaybe-uninitialized");
 #include <soft-fp.h>
 #include <single.h>
 #include <double.h>
diff --git a/sysdeps/unix/sysv/linux/convert_scm_timestamps.c b/sysdeps/unix/sysv/linux/convert_scm_timestamps.c
index 3720bd9591..399fe597e3 100644
--- a/sysdeps/unix/sysv/linux/convert_scm_timestamps.c
+++ b/sysdeps/unix/sysv/linux/convert_scm_timestamps.c
@@ -51,7 +51,7 @@ __convert_scm_timestamps (struct msghdr *msg, socklen_t msgsize)
      (done by either COMPAT_SO_TIMESTAMP_OLD or COMPAT_SO_TIMESTAMPNS_OLD)
      which will fallthrough to 'common' label.  */
   DIAG_PUSH_NEEDS_COMMENT;
-  DIAG_IGNORE_NEEDS_COMMENT (6, "-Wmaybe-uninitialized");
+  DIAG_IGNORE_NEEDS_COMMENT_GCC (6, "-Wmaybe-uninitialized");
   int64_t tvts[2];
   DIAG_POP_NEEDS_COMMENT;
   int32_t tmp[2];

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [glibc/azanella/clang] Suppress -Wmaybe-uninitialized only for gcc
@ 2024-04-02 15:50 Adhemerval Zanella
  0 siblings, 0 replies; 7+ messages in thread
From: Adhemerval Zanella @ 2024-04-02 15:50 UTC (permalink / raw)
  To: glibc-cvs

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=a032b6f3e12e11cb7ee3c1920e95596cfe76cdbc

commit a032b6f3e12e11cb7ee3c1920e95596cfe76cdbc
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Wed Mar 9 15:51:50 2022 -0300

    Suppress -Wmaybe-uninitialized only for gcc
    
    The warning is not supported by clang.

Diff:
---
 elf/dl-load.c                                    |  2 +-
 hurd/hurdsig.c                                   |  2 +-
 iconv/loop.c                                     |  2 +-
 iconvdata/iso-2022-cn-ext.c                      |  2 +-
 include/libc-diag.h                              |  3 +++
 inet/net-internal.h                              |  2 +-
 locale/weight.h                                  |  6 +++---
 locale/weightwc.h                                |  8 ++++----
 malloc/malloc-check.c                            |  2 +-
 nis/nis_table.c                                  |  2 +-
 nptl/tst-thread-setspecific.c                    |  2 +-
 nptl_db/thread_dbP.h                             |  2 +-
 posix/fnmatch_loop.c                             |  6 +++---
 posix/regexec.c                                  |  2 +-
 resolv/res_send.c                                | 10 +++++-----
 stdio-common/vfscanf-internal.c                  |  2 +-
 stdlib/bug-getcontext.c                          |  2 +-
 string/strcoll_l.c                               |  4 ++--
 string/wordcopy.c                                |  6 +++---
 sunrpc/clnt_udp.c                                |  2 +-
 sysdeps/ieee754/dbl-64/e_lgamma_r.c              |  2 +-
 sysdeps/ieee754/dbl-64/s_log1p.c                 |  2 +-
 sysdeps/ieee754/flt-32/e_lgammaf_r.c             |  2 +-
 sysdeps/ieee754/flt-32/s_log1pf.c                |  2 +-
 sysdeps/ieee754/ldbl-128/k_tanl.c                |  2 +-
 sysdeps/ieee754/ldbl-128ibm/k_tanl.c             |  2 +-
 sysdeps/ieee754/ldbl-96/e_lgammal_r.c            |  2 +-
 sysdeps/ieee754/ldbl-96/k_tanl.c                 |  2 +-
 sysdeps/ieee754/soft-fp/s_ddivl.c                |  2 +-
 sysdeps/ieee754/soft-fp/s_dfmal.c                |  2 +-
 sysdeps/ieee754/soft-fp/s_dsqrtl.c               |  2 +-
 sysdeps/ieee754/soft-fp/s_fdiv.c                 |  2 +-
 sysdeps/ieee754/soft-fp/s_fdivl.c                |  2 +-
 sysdeps/ieee754/soft-fp/s_ffma.c                 |  2 +-
 sysdeps/ieee754/soft-fp/s_ffmal.c                |  2 +-
 sysdeps/ieee754/soft-fp/s_fma.c                  |  2 +-
 sysdeps/ieee754/soft-fp/s_fmaf.c                 |  2 +-
 sysdeps/ieee754/soft-fp/s_fmal.c                 |  2 +-
 sysdeps/ieee754/soft-fp/s_fsqrt.c                |  2 +-
 sysdeps/unix/sysv/linux/convert_scm_timestamps.c |  2 +-
 40 files changed, 56 insertions(+), 53 deletions(-)

diff --git a/elf/dl-load.c b/elf/dl-load.c
index a34cb3559c..a3a175e4b9 100644
--- a/elf/dl-load.c
+++ b/elf/dl-load.c
@@ -1148,7 +1148,7 @@ _dl_map_object_from_fd (const char *name, const char *origname, int fd,
 	     ‘(((char *)loadcmds.113_68 + _933 + 16))[329406144173384849].mapend’ may be used uninitialized [-Wmaybe-uninitialized]
 	     See: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106008
 	   */
-	  DIAG_IGNORE_NEEDS_COMMENT (11, "-Wmaybe-uninitialized");
+	  DIAG_IGNORE_NEEDS_COMMENT_GCC (11, "-Wmaybe-uninitialized");
 #endif
 	  /* Determine whether there is a gap between the last segment
 	     and this one.  */
diff --git a/hurd/hurdsig.c b/hurd/hurdsig.c
index 8b1928d1a1..a7b7bbcc58 100644
--- a/hurd/hurdsig.c
+++ b/hurd/hurdsig.c
@@ -376,7 +376,7 @@ interrupted_reply_port_location (thread_t thread,
   /* GCC 6 and before seem to be confused by the setjmp call inside
      _hurdsig_catch_memory_fault and think that we may be returning a second
      time to here with portloc uninitialized (but we never do). */
-  DIAG_IGNORE_NEEDS_COMMENT (6, "-Wmaybe-uninitialized");
+  DIAG_IGNORE_NEEDS_COMMENT_GCC (6, "-Wmaybe-uninitialized");
   /* Fault now if this pointer is bogus.  */
   *(volatile mach_port_t *) portloc = *portloc;
   DIAG_POP_NEEDS_COMMENT;
diff --git a/iconv/loop.c b/iconv/loop.c
index 5340dafc70..ade4185f53 100644
--- a/iconv/loop.c
+++ b/iconv/loop.c
@@ -192,7 +192,7 @@
    has a comment referencing this diagnostic disabling; updates in one
    place may require updates in the other.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_Os_NEEDS_COMMENT (7, "-Wmaybe-uninitialized");
+DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (7, "-Wmaybe-uninitialized");
 /* Handling of Unicode 3.1 TAG characters.  Unicode recommends
    "If language codes are not relevant to the particular processing
     operation, then they should be ignored."  This macro is usually
diff --git a/iconvdata/iso-2022-cn-ext.c b/iconvdata/iso-2022-cn-ext.c
index b34c8a36f4..0be9278740 100644
--- a/iconvdata/iso-2022-cn-ext.c
+++ b/iconvdata/iso-2022-cn-ext.c
@@ -403,7 +403,7 @@ enum
    involved in determining the code page and is the indicator that
    tmpbuf[2] is initialized.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_Os_NEEDS_COMMENT (5, "-Wmaybe-uninitialized");
+DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (5, "-Wmaybe-uninitialized");
 #define BODY \
   {									      \
     uint32_t ch;							      \
diff --git a/include/libc-diag.h b/include/libc-diag.h
index 7666a386f3..49e7457c6e 100644
--- a/include/libc-diag.h
+++ b/include/libc-diag.h
@@ -86,9 +86,12 @@
 #ifndef __clang__
 # define DIAG_IGNORE_NEEDS_COMMENT_GCC(VERSION, WARNING) \
   DIAG_IGNORE_NEEDS_COMMENT (VERSION, WARNING)
+# define DIAG_IGNORE_Os_NEEDS_COMMENT_GCC(VERSION, WARNING) \
+  DIAG_IGNORE_Os_NEEDS_COMMENT (VERSION, WARNING)
 # define DIAG_IGNORE_NEEDS_COMMENT_CLANG(version, option)
 #else
 # define DIAG_IGNORE_NEEDS_COMMENT_GCC(VERSION, WARNING)
+# define DIAG_IGNORE_Os_NEEDS_COMMENT_GCC(VERSION, WARNING)
 # define DIAG_IGNORE_NEEDS_COMMENT_CLANG(version, option) \
   _Pragma (_DIAG_STR (clang diagnostic ignored option))
 #endif
diff --git a/inet/net-internal.h b/inet/net-internal.h
index f5749a8662..ad71fbecf0 100644
--- a/inet/net-internal.h
+++ b/inet/net-internal.h
@@ -106,7 +106,7 @@ __deadline_is_infinite (struct deadline deadline)
  *    https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91691
  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (9, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (9, "-Wmaybe-uninitialized");
 
 /* Return true if the current time is at the deadline or past it.  */
 static inline bool
diff --git a/locale/weight.h b/locale/weight.h
index 4c5e8b7a73..7cabfec2bb 100644
--- a/locale/weight.h
+++ b/locale/weight.h
@@ -32,7 +32,7 @@ findidx (const int32_t *table,
      This uninitialized use is impossible for the same reason
      as described in comments in locale/weightwc.h.  */
   DIAG_PUSH_NEEDS_COMMENT;
-  DIAG_IGNORE_Os_NEEDS_COMMENT (8, "-Wmaybe-uninitialized");
+  DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (8, "-Wmaybe-uninitialized");
   int32_t i = table[*(*cpp)++];
   DIAG_POP_NEEDS_COMMENT;
   const unsigned char *cp;
@@ -75,7 +75,7 @@ findidx (const int32_t *table,
 	     of -1 for len at the same time which means that this loop
 	     never executes.  */
 	  DIAG_PUSH_NEEDS_COMMENT;
-	  DIAG_IGNORE_Os_NEEDS_COMMENT (5, "-Wmaybe-uninitialized");
+	  DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (5, "-Wmaybe-uninitialized");
 	  for (cnt = 0; cnt < nhere && cnt < len; ++cnt)
 	    if (cp[cnt] != usrc[cnt])
 	      break;
@@ -144,7 +144,7 @@ findidx (const int32_t *table,
 		     is impossible for the same reason as described
 		     above.  */
 		  DIAG_PUSH_NEEDS_COMMENT;
-		  DIAG_IGNORE_Os_NEEDS_COMMENT (7, "-Wmaybe-uninitialized");
+		  DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (7, "-Wmaybe-uninitialized");
 		  offset += usrc[cnt] - cp[cnt];
 		  DIAG_POP_NEEDS_COMMENT;
 		}
diff --git a/locale/weightwc.h b/locale/weightwc.h
index 5fce8d4448..7072e19017 100644
--- a/locale/weightwc.h
+++ b/locale/weightwc.h
@@ -33,7 +33,7 @@ findidx (const int32_t *table,
      called except in cases where those fields have been
      initialized.  */
   DIAG_PUSH_NEEDS_COMMENT;
-  DIAG_IGNORE_Os_NEEDS_COMMENT (7, "-Wmaybe-uninitialized");
+  DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (7, "-Wmaybe-uninitialized");
   wint_t ch = *(*cpp)++;
   DIAG_POP_NEEDS_COMMENT;
   int32_t i = __collidx_table_lookup ((const char *) table, ch);
@@ -74,7 +74,7 @@ findidx (const int32_t *table,
 	     of -1 for len at the same time which means that this loop
 	     never executes.  */
 	  DIAG_PUSH_NEEDS_COMMENT;
-	  DIAG_IGNORE_Os_NEEDS_COMMENT (5, "-Wmaybe-uninitialized");
+	  DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (5, "-Wmaybe-uninitialized");
 	  for (cnt = 0; cnt < nhere && cnt < len; ++cnt)
 	    if (cp[cnt] != usrc[cnt])
 	      break;
@@ -102,7 +102,7 @@ findidx (const int32_t *table,
 	     might be used uninitialized.  This is impossible for the
 	     same reason as described above.  */
 	  DIAG_PUSH_NEEDS_COMMENT;
-	  DIAG_IGNORE_Os_NEEDS_COMMENT (7, "-Wmaybe-uninitialized");
+	  DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (7, "-Wmaybe-uninitialized");
 	  for (cnt = 0; cnt < nhere - 1 && cnt < len; ++cnt)
 	    if (cp[cnt] != usrc[cnt])
 	      break;
@@ -119,7 +119,7 @@ findidx (const int32_t *table,
 	     might be used uninitialized.  This is impossible for the
 	     same reason as described above.  */
 	  DIAG_PUSH_NEEDS_COMMENT;
-	  DIAG_IGNORE_Os_NEEDS_COMMENT (7, "-Wmaybe-uninitialized");
+	  DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (7, "-Wmaybe-uninitialized");
 	  if (cp[nhere - 1] > usrc[nhere - 1])
 	    {
 	      cp += 2 * nhere;
diff --git a/malloc/malloc-check.c b/malloc/malloc-check.c
index da1158b333..0ccc7672d9 100644
--- a/malloc/malloc-check.c
+++ b/malloc/malloc-check.c
@@ -319,7 +319,7 @@ realloc_check (void *oldmem, size_t bytes)
 #if __GNUC_PREREQ (7, 0)
   /* GCC 7 warns about magic_p may be used uninitialized.  But we never
      reach here if magic_p is uninitialized.  */
-  DIAG_IGNORE_NEEDS_COMMENT (7, "-Wmaybe-uninitialized");
+  DIAG_IGNORE_NEEDS_COMMENT_GCC (7, "-Wmaybe-uninitialized");
 #endif
   /* mem2chunk_check changed the magic byte in the old chunk.
      If newmem is NULL, then the old chunk will still be used though,
diff --git a/nis/nis_table.c b/nis/nis_table.c
index 56c1aa262d..399c16cb86 100644
--- a/nis/nis_table.c
+++ b/nis/nis_table.c
@@ -180,7 +180,7 @@ __follow_path (char **tablepath, char **tableptr, struct ib_request *ibreq,
   /* Since tableptr is only set here, and it's set when tablepath is NULL,
      which it is initially defined as, we know it will always be set here.  */
   DIAG_PUSH_NEEDS_COMMENT;
-  DIAG_IGNORE_NEEDS_COMMENT (4.7, "-Wmaybe-uninitialized");
+  DIAG_IGNORE_NEEDS_COMMENT_GCC (4.7, "-Wmaybe-uninitialized");
 
   if (*tableptr == NULL)
     return NIS_NOTFOUND;
diff --git a/nptl/tst-thread-setspecific.c b/nptl/tst-thread-setspecific.c
index 462c9f0d2b..0008a8ee2f 100644
--- a/nptl/tst-thread-setspecific.c
+++ b/nptl/tst-thread-setspecific.c
@@ -25,7 +25,7 @@
    See BZ #27714.  */
 
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (6, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (6, "-Wmaybe-uninitialized");
 DIAG_IGNORE_NEEDS_COMMENT (6, "-Wuninitialized");
 
 static int
diff --git a/nptl_db/thread_dbP.h b/nptl_db/thread_dbP.h
index 72d5558845..aa9b614cb0 100644
--- a/nptl_db/thread_dbP.h
+++ b/nptl_db/thread_dbP.h
@@ -176,7 +176,7 @@ extern ps_err_e td_mod_lookup (struct ps_prochandle *ps, const char *modname,
    when DB_GET_FIELD_ADDRESS is called with a slot for ptr, the slot is
    always initialized.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_Os_NEEDS_COMMENT (5, "-Wmaybe-uninitialized");
+DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (5, "-Wmaybe-uninitialized");
 #define DB_GET_FIELD_ADDRESS(var, ta, ptr, type, field, idx) \
   ((var) = (ptr), _td_locate_field ((ta), (ta)->ta_field_##type##_##field, \
 				    SYM_##type##_FIELD_##field, \
diff --git a/posix/fnmatch_loop.c b/posix/fnmatch_loop.c
index 6994a09ab5..17fcb58bf4 100644
--- a/posix/fnmatch_loop.c
+++ b/posix/fnmatch_loop.c
@@ -560,7 +560,7 @@ FCT (const CHAR *pattern, const CHAR *string, const CHAR *string_end,
 				   above it will be properly set by the loop.
 				   */
                                 DIAG_PUSH_NEEDS_COMMENT;
-                                DIAG_IGNORE_Os_NEEDS_COMMENT (8, "-Wmaybe-uninitialized");
+                                DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (8, "-Wmaybe-uninitialized");
                                 cold = wextra[1 + wextra[0]];
                                 DIAG_POP_NEEDS_COMMENT;
 # else
@@ -745,7 +745,7 @@ FCT (const CHAR *pattern, const CHAR *string, const CHAR *string_end,
                                        means that it was properly set in the
                                        loop above.   */
                                     DIAG_PUSH_NEEDS_COMMENT;
-                                    DIAG_IGNORE_Os_NEEDS_COMMENT (8, "-Wmaybe-uninitialized");
+                                    DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (8, "-Wmaybe-uninitialized");
                                     cend = wextra[1 + wextra[0]];
                                     DIAG_POP_NEEDS_COMMENT;
 # else
@@ -754,7 +754,7 @@ FCT (const CHAR *pattern, const CHAR *string, const CHAR *string_end,
 				       wextra above it will be properly set by
 				       the loop.   */
                                     DIAG_PUSH_NEEDS_COMMENT;
-                                    DIAG_IGNORE_Os_NEEDS_COMMENT (8, "-Wmaybe-uninitialized");
+                                    DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (8, "-Wmaybe-uninitialized");
                                     idx += 1 + extra[idx];
                                     DIAG_POP_NEEDS_COMMENT;
                                     /* Adjust for the alignment.  */
diff --git a/posix/regexec.c b/posix/regexec.c
index 180e3bce40..13add301f5 100644
--- a/posix/regexec.c
+++ b/posix/regexec.c
@@ -3772,7 +3772,7 @@ check_node_accept_bytes (const re_dfa_t *dfa, Idx node_idx,
 		 however the loop will be executed iff ncoll_syms is larger
 		 than 0,which means extra will be already initialized.  */
 	      DIAG_PUSH_NEEDS_COMMENT;
-	      DIAG_IGNORE_Os_NEEDS_COMMENT (8, "-Wmaybe-uninitialized");
+	      DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (8, "-Wmaybe-uninitialized");
 	      const unsigned char *coll_sym = extra + cset->coll_syms[i];
 	      DIAG_POP_NEEDS_COMMENT;
 	      /* Compare the length of input collating element and
diff --git a/resolv/res_send.c b/resolv/res_send.c
index fb0217204a..c314d9762a 100644
--- a/resolv/res_send.c
+++ b/resolv/res_send.c
@@ -266,7 +266,7 @@ __res_context_send (struct resolv_context *ctx,
 	   Here the variable n is set to the return value of send_vc.
 	   See below.  */
 	DIAG_PUSH_NEEDS_COMMENT;
-	DIAG_IGNORE_NEEDS_COMMENT (9, "-Wmaybe-uninitialized");
+	DIAG_IGNORE_NEEDS_COMMENT_GCC (9, "-Wmaybe-uninitialized");
 	int n;
 	DIAG_POP_NEEDS_COMMENT;
 
@@ -364,7 +364,7 @@ __res_context_send (struct resolv_context *ctx,
 				return (-1);
 			/* See comment at the declaration of n.  */
 			DIAG_PUSH_NEEDS_COMMENT;
-			DIAG_IGNORE_NEEDS_COMMENT (9, "-Wmaybe-uninitialized");
+			DIAG_IGNORE_NEEDS_COMMENT_GCC (9, "-Wmaybe-uninitialized");
 			if (n == 0 && (buf2 == NULL || *resplen2 == 0))
 				goto next_ns;
 			DIAG_POP_NEEDS_COMMENT;
@@ -388,7 +388,7 @@ __res_context_send (struct resolv_context *ctx,
 
 		/* See comment at the declaration of n.  Note: resplen = n;  */
 		DIAG_PUSH_NEEDS_COMMENT;
-		DIAG_IGNORE_NEEDS_COMMENT (9, "-Wmaybe-uninitialized");
+		DIAG_IGNORE_NEEDS_COMMENT_GCC (9, "-Wmaybe-uninitialized");
 		/* Mask the AD bit in both responses unless it is
 		   marked trusted.  */
 		if (resplen > HFIXEDSZ)
@@ -580,7 +580,7 @@ send_vc(res_state statp,
 	   a false-positive.
 	 */
 	DIAG_PUSH_NEEDS_COMMENT;
-	DIAG_IGNORE_NEEDS_COMMENT (5, "-Wmaybe-uninitialized");
+	DIAG_IGNORE_NEEDS_COMMENT_GCC (5, "-Wmaybe-uninitialized");
 	int resplen;
 	DIAG_POP_NEEDS_COMMENT;
 	struct iovec iov[4];
@@ -852,7 +852,7 @@ reopen (res_state statp, int *terrno, int ns)
 		   the function return -1 before control flow reaches
 		   the call to connect with slen.  */
 		DIAG_PUSH_NEEDS_COMMENT;
-		DIAG_IGNORE_Os_NEEDS_COMMENT (5, "-Wmaybe-uninitialized");
+		DIAG_IGNORE_NEEDS_COMMENT_GCC (5, "-Wmaybe-uninitialized");
 		if (__connect (EXT (statp).nssocks[ns], nsap, slen) < 0) {
 		DIAG_POP_NEEDS_COMMENT;
 			__res_iclose(statp, false);
diff --git a/stdio-common/vfscanf-internal.c b/stdio-common/vfscanf-internal.c
index 1b82deffa7..eb66506ca3 100644
--- a/stdio-common/vfscanf-internal.c
+++ b/stdio-common/vfscanf-internal.c
@@ -1608,7 +1608,7 @@ __vfscanf_internal (FILE *s, const char *format, va_list argptr,
 			 above, but the test for "map != NULL" is done
 			 inside the loop here and outside the loop there.  */
 		      DIAG_PUSH_NEEDS_COMMENT;
-		      DIAG_IGNORE_NEEDS_COMMENT (4.7, "-Wmaybe-uninitialized");
+		      DIAG_IGNORE_NEEDS_COMMENT_GCC (4.7, "-Wmaybe-uninitialized");
 
 		      if (__glibc_unlikely (map != NULL))
 			wcdigits[n] = digits_extended[n];
diff --git a/stdlib/bug-getcontext.c b/stdlib/bug-getcontext.c
index 55c681c480..9e5e6c7e1c 100644
--- a/stdlib/bug-getcontext.c
+++ b/stdlib/bug-getcontext.c
@@ -56,7 +56,7 @@ do_test (void)
      in local variables being clobbered on the second return from
      getcontext), in fact an uninitialized use is not possible.  */
   DIAG_PUSH_NEEDS_COMMENT;
-  DIAG_IGNORE_NEEDS_COMMENT (5, "-Wmaybe-uninitialized");
+  DIAG_IGNORE_NEEDS_COMMENT_GCC (5, "-Wmaybe-uninitialized");
   int mask = fegetexcept ();
   if (mask != except_mask)
     {
diff --git a/string/strcoll_l.c b/string/strcoll_l.c
index 06aa1423c0..d68b12e79a 100644
--- a/string/strcoll_l.c
+++ b/string/strcoll_l.c
@@ -180,7 +180,7 @@ get_next_seq (coll_seq *seq, int nrules, const unsigned char *rulesets,
 	 ensures that seq->save_idx was saved to first and contains a
 	 valid value.  */
       DIAG_PUSH_NEEDS_COMMENT;
-      DIAG_IGNORE_Os_NEEDS_COMMENT (5, "-Wmaybe-uninitialized");
+      DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (5, "-Wmaybe-uninitialized");
       len = weights[idx++];
       DIAG_POP_NEEDS_COMMENT;
       /* Skip over indices of previous levels.  */
@@ -299,7 +299,7 @@ STRCOLL (const STRING_TYPE *s1, const STRING_TYPE *s2, locale_t l)
      seq2.  This uninitialized use is impossible for the same reason
      as described in comments in locale/weightwc.h.  */
   DIAG_PUSH_NEEDS_COMMENT;
-  DIAG_IGNORE_Os_NEEDS_COMMENT (7, "-Wmaybe-uninitialized");
+  DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (7, "-Wmaybe-uninitialized");
   coll_seq seq1, seq2;
   DIAG_POP_NEEDS_COMMENT;
   seq1.len = 0;
diff --git a/string/wordcopy.c b/string/wordcopy.c
index 4e77cdb132..083daa658c 100644
--- a/string/wordcopy.c
+++ b/string/wordcopy.c
@@ -29,7 +29,7 @@
    Since the usage is within the MERGE macro we disable the
    warning in the definition, but only in this file.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (6, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (6, "-Wmaybe-uninitialized");
 #include <memcopy.h>
 DIAG_POP_NEEDS_COMMENT;
 
@@ -112,7 +112,7 @@ WORDCOPY_FWD_ALIGNED (long int dstp, long int srcp, size_t len)
 	 case. The switch case always sets 'a1' and all previous loop
 	 iterations will also have set 'a1' before the use.  */
       DIAG_PUSH_NEEDS_COMMENT;
-      DIAG_IGNORE_NEEDS_COMMENT (6, "-Wmaybe-uninitialized");
+      DIAG_IGNORE_NEEDS_COMMENT_GCC (6, "-Wmaybe-uninitialized");
       ((op_t *) dstp)[0] = a1;
       DIAG_POP_NEEDS_COMMENT;
     do7:
@@ -313,7 +313,7 @@ WORDCOPY_BWD_ALIGNED (long int dstp, long int srcp, size_t len)
       a0 = ((op_t *) srcp)[7];
       /* Check the comment on WORDCOPY_FWD_ALIGNED.  */
       DIAG_PUSH_NEEDS_COMMENT;
-      DIAG_IGNORE_NEEDS_COMMENT (6, "-Wmaybe-uninitialized");
+      DIAG_IGNORE_NEEDS_COMMENT_GCC (6, "-Wmaybe-uninitialized");
       ((op_t *) dstp)[7] = a1;
       DIAG_POP_NEEDS_COMMENT;
     do7:
diff --git a/sunrpc/clnt_udp.c b/sunrpc/clnt_udp.c
index ee79b09b40..4353e5da18 100644
--- a/sunrpc/clnt_udp.c
+++ b/sunrpc/clnt_udp.c
@@ -299,7 +299,7 @@ clntudp_call (/* client handle */
      inet/net-internal.h because in some other configurations GCC
      gives the warning in an inline function.  */
   DIAG_PUSH_NEEDS_COMMENT;
-  DIAG_IGNORE_NEEDS_COMMENT (10, "-Wmaybe-uninitialized");
+  DIAG_IGNORE_NEEDS_COMMENT_GCC (10, "-Wmaybe-uninitialized");
   struct deadline total_deadline; /* Determined once by overall timeout.  */
   DIAG_POP_NEEDS_COMMENT;
   struct deadline response_deadline; /* Determined anew for each query.  */
diff --git a/sysdeps/ieee754/dbl-64/e_lgamma_r.c b/sysdeps/ieee754/dbl-64/e_lgamma_r.c
index 72c68b6682..c298c8ca03 100644
--- a/sysdeps/ieee754/dbl-64/e_lgamma_r.c
+++ b/sysdeps/ieee754/dbl-64/e_lgamma_r.c
@@ -304,7 +304,7 @@ __ieee754_lgamma_r(double x, int *signgamp)
 	   although in the cases where it is used it has always been
 	   set.  */
 	DIAG_PUSH_NEEDS_COMMENT;
-	DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+	DIAG_IGNORE_NEEDS_COMMENT_GCC (4.9, "-Wmaybe-uninitialized");
 	if(hx<0) r = nadj - r;
 	DIAG_POP_NEEDS_COMMENT;
 	return r;
diff --git a/sysdeps/ieee754/dbl-64/s_log1p.c b/sysdeps/ieee754/dbl-64/s_log1p.c
index eeb0af859f..f52c0124fc 100644
--- a/sysdeps/ieee754/dbl-64/s_log1p.c
+++ b/sysdeps/ieee754/dbl-64/s_log1p.c
@@ -205,7 +205,7 @@ __log1p (double x)
 	 must be 0 for c to be uninitialized and we handled that
 	 computation earlier without using c.  */
       DIAG_PUSH_NEEDS_COMMENT;
-      DIAG_IGNORE_Os_NEEDS_COMMENT (7, "-Wmaybe-uninitialized");
+      DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (7, "-Wmaybe-uninitialized");
       return k * ln2_hi - ((hfsq - (s * (hfsq + R) + (k * ln2_lo + c))) - f);
       DIAG_POP_NEEDS_COMMENT;
     }
diff --git a/sysdeps/ieee754/flt-32/e_lgammaf_r.c b/sysdeps/ieee754/flt-32/e_lgammaf_r.c
index a1a3a60454..77dc54eaeb 100644
--- a/sysdeps/ieee754/flt-32/e_lgammaf_r.c
+++ b/sysdeps/ieee754/flt-32/e_lgammaf_r.c
@@ -239,7 +239,7 @@ __ieee754_lgammaf_r(float x, int *signgamp)
 	   although in the cases where it is used it has always been
 	   set.  */
 	DIAG_PUSH_NEEDS_COMMENT;
-	DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+	DIAG_IGNORE_NEEDS_COMMENT_GCC (4.9, "-Wmaybe-uninitialized");
 	if(hx<0) r = nadj - r;
 	DIAG_POP_NEEDS_COMMENT;
 	return r;
diff --git a/sysdeps/ieee754/flt-32/s_log1pf.c b/sysdeps/ieee754/flt-32/s_log1pf.c
index 555f0f82c8..cddc0f1e09 100644
--- a/sysdeps/ieee754/flt-32/s_log1pf.c
+++ b/sysdeps/ieee754/flt-32/s_log1pf.c
@@ -108,7 +108,7 @@ __log1pf(float x)
 	       because k must be 0 for c to be uninitialized and we
 	       handled that computation earlier without using c.  */
 	    DIAG_PUSH_NEEDS_COMMENT;
-	    DIAG_IGNORE_Os_NEEDS_COMMENT (7, "-Wmaybe-uninitialized");
+	    DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (7, "-Wmaybe-uninitialized");
 	    return k * ln2_hi - ((hfsq - (s * (hfsq + R)
 					  + (k * ln2_lo + c))) - f);
 	    DIAG_POP_NEEDS_COMMENT;
diff --git a/sysdeps/ieee754/ldbl-128/k_tanl.c b/sysdeps/ieee754/ldbl-128/k_tanl.c
index 8e93626a89..af10fbc64b 100644
--- a/sysdeps/ieee754/ldbl-128/k_tanl.c
+++ b/sysdeps/ieee754/ldbl-128/k_tanl.c
@@ -143,7 +143,7 @@ __kernel_tanl (_Float128 x, _Float128 y, int iy)
 	 uninitialized although in the cases where it is used it has
 	 always been set.  */
       DIAG_PUSH_NEEDS_COMMENT;
-      DIAG_IGNORE_NEEDS_COMMENT (5, "-Wmaybe-uninitialized");
+      DIAG_IGNORE_NEEDS_COMMENT_GCC (5, "-Wmaybe-uninitialized");
       if (sign < 0)
 	w = -w;
       DIAG_POP_NEEDS_COMMENT;
diff --git a/sysdeps/ieee754/ldbl-128ibm/k_tanl.c b/sysdeps/ieee754/ldbl-128ibm/k_tanl.c
index cd95e46089..7a42a18e55 100644
--- a/sysdeps/ieee754/ldbl-128ibm/k_tanl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/k_tanl.c
@@ -143,7 +143,7 @@ __kernel_tanl (long double x, long double y, int iy)
 	 uninitialized although in the cases where it is used it has
 	 always been set.  */
       DIAG_PUSH_NEEDS_COMMENT;
-      DIAG_IGNORE_NEEDS_COMMENT (5, "-Wmaybe-uninitialized");
+      DIAG_IGNORE_NEEDS_COMMENT_GCC (5, "-Wmaybe-uninitialized");
       if (sign < 0)
 	w = -w;
       DIAG_POP_NEEDS_COMMENT;
diff --git a/sysdeps/ieee754/ldbl-96/e_lgammal_r.c b/sysdeps/ieee754/ldbl-96/e_lgammal_r.c
index 148c21bb8d..d4fd7f5272 100644
--- a/sysdeps/ieee754/ldbl-96/e_lgammal_r.c
+++ b/sysdeps/ieee754/ldbl-96/e_lgammal_r.c
@@ -431,7 +431,7 @@ __ieee754_lgammal_r (long double x, int *signgamp)
      in warnings that it may be used uninitialized although in the
      cases where it is used it has always been set.  */
   DIAG_PUSH_NEEDS_COMMENT;
-  DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+  DIAG_IGNORE_NEEDS_COMMENT_GCC (4.9, "-Wmaybe-uninitialized");
   if (se & 0x8000)
     r = nadj - r;
   DIAG_POP_NEEDS_COMMENT;
diff --git a/sysdeps/ieee754/ldbl-96/k_tanl.c b/sysdeps/ieee754/ldbl-96/k_tanl.c
index 43a5aa4423..462795574f 100644
--- a/sysdeps/ieee754/ldbl-96/k_tanl.c
+++ b/sysdeps/ieee754/ldbl-96/k_tanl.c
@@ -140,7 +140,7 @@ __kernel_tanl (long double x, long double y, int iy)
         uninitialized although in the cases where it is used it has
         always been set.  */
       DIAG_PUSH_NEEDS_COMMENT;
-      DIAG_IGNORE_NEEDS_COMMENT (4.8, "-Wmaybe-uninitialized");
+      DIAG_IGNORE_NEEDS_COMMENT_GCC (4.8, "-Wmaybe-uninitialized");
       if (sign < 0)
 	w = -w;
       DIAG_POP_NEEDS_COMMENT;
diff --git a/sysdeps/ieee754/soft-fp/s_ddivl.c b/sysdeps/ieee754/soft-fp/s_ddivl.c
index 07a6210319..e34244baf5 100644
--- a/sysdeps/ieee754/soft-fp/s_ddivl.c
+++ b/sysdeps/ieee754/soft-fp/s_ddivl.c
@@ -37,7 +37,7 @@
    versions of GCC, it may be where R is defined using a macro or it
    may be where the macro is defined.  This happens only with -O1.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (8, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (8, "-Wmaybe-uninitialized");
 #include <soft-fp.h>
 #include <double.h>
 #include <quad.h>
diff --git a/sysdeps/ieee754/soft-fp/s_dfmal.c b/sysdeps/ieee754/soft-fp/s_dfmal.c
index 9f537c527d..05fb1a7585 100644
--- a/sysdeps/ieee754/soft-fp/s_dfmal.c
+++ b/sysdeps/ieee754/soft-fp/s_dfmal.c
@@ -37,7 +37,7 @@
    it may be where R is defined using a macro or it may be where the
    macro is defined.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (4.9, "-Wmaybe-uninitialized");
 
 #include <soft-fp.h>
 #include <double.h>
diff --git a/sysdeps/ieee754/soft-fp/s_dsqrtl.c b/sysdeps/ieee754/soft-fp/s_dsqrtl.c
index 2b78065823..2e568009a4 100644
--- a/sysdeps/ieee754/soft-fp/s_dsqrtl.c
+++ b/sysdeps/ieee754/soft-fp/s_dsqrtl.c
@@ -35,7 +35,7 @@
    does not see that they are set in all cases where they are used,
    resulting in warnings that they may be used uninitialized.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (7, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (7, "-Wmaybe-uninitialized");
 #include <soft-fp.h>
 #include <double.h>
 #include <quad.h>
diff --git a/sysdeps/ieee754/soft-fp/s_fdiv.c b/sysdeps/ieee754/soft-fp/s_fdiv.c
index 8c92aa6fb2..4511c5ef67 100644
--- a/sysdeps/ieee754/soft-fp/s_fdiv.c
+++ b/sysdeps/ieee754/soft-fp/s_fdiv.c
@@ -34,7 +34,7 @@
    versions of GCC, it may be where R is defined using a macro or it
    may be where the macro is defined.  This happens only with -O1.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (8, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (8, "-Wmaybe-uninitialized");
 #include <soft-fp.h>
 #include <single.h>
 #include <double.h>
diff --git a/sysdeps/ieee754/soft-fp/s_fdivl.c b/sysdeps/ieee754/soft-fp/s_fdivl.c
index b99c9e9335..54d4b760f5 100644
--- a/sysdeps/ieee754/soft-fp/s_fdivl.c
+++ b/sysdeps/ieee754/soft-fp/s_fdivl.c
@@ -33,7 +33,7 @@
    versions of GCC, it may be where R is defined using a macro or it
    may be where the macro is defined.  This happens only with -O1.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (8, "-Wmaybe-uninitialized");
+(8);
 #include <soft-fp.h>
 #include <single.h>
 #include <quad.h>
diff --git a/sysdeps/ieee754/soft-fp/s_ffma.c b/sysdeps/ieee754/soft-fp/s_ffma.c
index f63f4e2418..be3cf0caf5 100644
--- a/sysdeps/ieee754/soft-fp/s_ffma.c
+++ b/sysdeps/ieee754/soft-fp/s_ffma.c
@@ -35,7 +35,7 @@
    it may be where R is defined using a macro or it may be where the
    macro is defined.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (4.9, "-Wmaybe-uninitialized");
 
 #include <soft-fp.h>
 #include <single.h>
diff --git a/sysdeps/ieee754/soft-fp/s_ffmal.c b/sysdeps/ieee754/soft-fp/s_ffmal.c
index 6d723ed046..f3785b1a5b 100644
--- a/sysdeps/ieee754/soft-fp/s_ffmal.c
+++ b/sysdeps/ieee754/soft-fp/s_ffmal.c
@@ -33,7 +33,7 @@
    it may be where R is defined using a macro or it may be where the
    macro is defined.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (4.9, "-Wmaybe-uninitialized");
 
 #include <soft-fp.h>
 #include <single.h>
diff --git a/sysdeps/ieee754/soft-fp/s_fma.c b/sysdeps/ieee754/soft-fp/s_fma.c
index 67e31e6209..ffcbaf48b3 100644
--- a/sysdeps/ieee754/soft-fp/s_fma.c
+++ b/sysdeps/ieee754/soft-fp/s_fma.c
@@ -42,7 +42,7 @@
    it may be where R is defined using a macro or it may be where the
    macro is defined.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (4.9, "-Wmaybe-uninitialized");
 
 #include "soft-fp.h"
 #include "double.h"
diff --git a/sysdeps/ieee754/soft-fp/s_fmaf.c b/sysdeps/ieee754/soft-fp/s_fmaf.c
index a57e949fa5..95e5a34e1b 100644
--- a/sysdeps/ieee754/soft-fp/s_fmaf.c
+++ b/sysdeps/ieee754/soft-fp/s_fmaf.c
@@ -37,7 +37,7 @@
    it may be where R is defined using a macro or it may be where the
    macro is defined.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (4.9, "-Wmaybe-uninitialized");
 
 #include "soft-fp.h"
 #include "single.h"
diff --git a/sysdeps/ieee754/soft-fp/s_fmal.c b/sysdeps/ieee754/soft-fp/s_fmal.c
index 1973a21f19..22ffc7cebd 100644
--- a/sysdeps/ieee754/soft-fp/s_fmal.c
+++ b/sysdeps/ieee754/soft-fp/s_fmal.c
@@ -40,7 +40,7 @@
    it may be where R is defined using a macro or it may be where the
    macro is defined.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (4.9, "-Wmaybe-uninitialized");
 
 #include "soft-fp.h"
 #include "quad.h"
diff --git a/sysdeps/ieee754/soft-fp/s_fsqrt.c b/sysdeps/ieee754/soft-fp/s_fsqrt.c
index f64ae8262c..5162bd17db 100644
--- a/sysdeps/ieee754/soft-fp/s_fsqrt.c
+++ b/sysdeps/ieee754/soft-fp/s_fsqrt.c
@@ -33,7 +33,7 @@
    versions of GCC, it may be where R is defined using a macro or it
    may be where the macro is defined.  This happens only with -O1.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (8, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (8, "-Wmaybe-uninitialized");
 #include <soft-fp.h>
 #include <single.h>
 #include <double.h>
diff --git a/sysdeps/unix/sysv/linux/convert_scm_timestamps.c b/sysdeps/unix/sysv/linux/convert_scm_timestamps.c
index 3720bd9591..399fe597e3 100644
--- a/sysdeps/unix/sysv/linux/convert_scm_timestamps.c
+++ b/sysdeps/unix/sysv/linux/convert_scm_timestamps.c
@@ -51,7 +51,7 @@ __convert_scm_timestamps (struct msghdr *msg, socklen_t msgsize)
      (done by either COMPAT_SO_TIMESTAMP_OLD or COMPAT_SO_TIMESTAMPNS_OLD)
      which will fallthrough to 'common' label.  */
   DIAG_PUSH_NEEDS_COMMENT;
-  DIAG_IGNORE_NEEDS_COMMENT (6, "-Wmaybe-uninitialized");
+  DIAG_IGNORE_NEEDS_COMMENT_GCC (6, "-Wmaybe-uninitialized");
   int64_t tvts[2];
   DIAG_POP_NEEDS_COMMENT;
   int32_t tmp[2];

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [glibc/azanella/clang] Suppress -Wmaybe-uninitialized only for gcc
@ 2024-02-07 14:04 Adhemerval Zanella
  0 siblings, 0 replies; 7+ messages in thread
From: Adhemerval Zanella @ 2024-02-07 14:04 UTC (permalink / raw)
  To: glibc-cvs

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=a74790b6373f265dc16058cc807cf9bfa403fa90

commit a74790b6373f265dc16058cc807cf9bfa403fa90
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Wed Mar 9 15:51:50 2022 -0300

    Suppress -Wmaybe-uninitialized only for gcc
    
    The warning is not supported by clang.

Diff:
---
 elf/dl-load.c                                    |  2 +-
 hurd/hurdsig.c                                   |  2 +-
 iconv/loop.c                                     |  2 +-
 iconvdata/iso-2022-cn-ext.c                      |  2 +-
 include/libc-diag.h                              |  3 +++
 inet/net-internal.h                              |  2 +-
 locale/weight.h                                  |  6 +++---
 locale/weightwc.h                                |  8 ++++----
 malloc/malloc-check.c                            |  2 +-
 nis/nis_table.c                                  |  2 +-
 nptl/tst-thread-setspecific.c                    |  2 +-
 nptl_db/thread_dbP.h                             |  2 +-
 posix/fnmatch_loop.c                             |  6 +++---
 posix/regexec.c                                  |  2 +-
 resolv/res_send.c                                | 10 +++++-----
 stdio-common/vfscanf-internal.c                  |  2 +-
 stdlib/bug-getcontext.c                          |  2 +-
 string/strcoll_l.c                               |  4 ++--
 string/wordcopy.c                                |  6 +++---
 sunrpc/clnt_udp.c                                |  2 +-
 sysdeps/ieee754/dbl-64/e_lgamma_r.c              |  2 +-
 sysdeps/ieee754/dbl-64/s_log1p.c                 |  2 +-
 sysdeps/ieee754/flt-32/e_lgammaf_r.c             |  2 +-
 sysdeps/ieee754/flt-32/s_log1pf.c                |  2 +-
 sysdeps/ieee754/ldbl-128/k_tanl.c                |  2 +-
 sysdeps/ieee754/ldbl-128ibm/k_tanl.c             |  2 +-
 sysdeps/ieee754/ldbl-96/e_lgammal_r.c            |  2 +-
 sysdeps/ieee754/ldbl-96/k_tanl.c                 |  2 +-
 sysdeps/ieee754/soft-fp/s_ddivl.c                |  2 +-
 sysdeps/ieee754/soft-fp/s_dfmal.c                |  2 +-
 sysdeps/ieee754/soft-fp/s_dsqrtl.c               |  2 +-
 sysdeps/ieee754/soft-fp/s_fdiv.c                 |  2 +-
 sysdeps/ieee754/soft-fp/s_fdivl.c                |  2 +-
 sysdeps/ieee754/soft-fp/s_ffma.c                 |  2 +-
 sysdeps/ieee754/soft-fp/s_ffmal.c                |  2 +-
 sysdeps/ieee754/soft-fp/s_fma.c                  |  2 +-
 sysdeps/ieee754/soft-fp/s_fmaf.c                 |  2 +-
 sysdeps/ieee754/soft-fp/s_fmal.c                 |  2 +-
 sysdeps/ieee754/soft-fp/s_fsqrt.c                |  2 +-
 sysdeps/unix/sysv/linux/convert_scm_timestamps.c |  2 +-
 40 files changed, 56 insertions(+), 53 deletions(-)

diff --git a/elf/dl-load.c b/elf/dl-load.c
index a34cb3559c..a3a175e4b9 100644
--- a/elf/dl-load.c
+++ b/elf/dl-load.c
@@ -1148,7 +1148,7 @@ _dl_map_object_from_fd (const char *name, const char *origname, int fd,
 	     ‘(((char *)loadcmds.113_68 + _933 + 16))[329406144173384849].mapend’ may be used uninitialized [-Wmaybe-uninitialized]
 	     See: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106008
 	   */
-	  DIAG_IGNORE_NEEDS_COMMENT (11, "-Wmaybe-uninitialized");
+	  DIAG_IGNORE_NEEDS_COMMENT_GCC (11, "-Wmaybe-uninitialized");
 #endif
 	  /* Determine whether there is a gap between the last segment
 	     and this one.  */
diff --git a/hurd/hurdsig.c b/hurd/hurdsig.c
index 882a03471d..3164f3be5f 100644
--- a/hurd/hurdsig.c
+++ b/hurd/hurdsig.c
@@ -376,7 +376,7 @@ interrupted_reply_port_location (thread_t thread,
   /* GCC 6 and before seem to be confused by the setjmp call inside
      _hurdsig_catch_memory_fault and think that we may be returning a second
      time to here with portloc uninitialized (but we never do). */
-  DIAG_IGNORE_NEEDS_COMMENT (6, "-Wmaybe-uninitialized");
+  DIAG_IGNORE_NEEDS_COMMENT_GCC (6, "-Wmaybe-uninitialized");
   /* Fault now if this pointer is bogus.  */
   *(volatile mach_port_t *) portloc = *portloc;
   DIAG_POP_NEEDS_COMMENT;
diff --git a/iconv/loop.c b/iconv/loop.c
index 5340dafc70..ade4185f53 100644
--- a/iconv/loop.c
+++ b/iconv/loop.c
@@ -192,7 +192,7 @@
    has a comment referencing this diagnostic disabling; updates in one
    place may require updates in the other.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_Os_NEEDS_COMMENT (7, "-Wmaybe-uninitialized");
+DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (7, "-Wmaybe-uninitialized");
 /* Handling of Unicode 3.1 TAG characters.  Unicode recommends
    "If language codes are not relevant to the particular processing
     operation, then they should be ignored."  This macro is usually
diff --git a/iconvdata/iso-2022-cn-ext.c b/iconvdata/iso-2022-cn-ext.c
index b34c8a36f4..0be9278740 100644
--- a/iconvdata/iso-2022-cn-ext.c
+++ b/iconvdata/iso-2022-cn-ext.c
@@ -403,7 +403,7 @@ enum
    involved in determining the code page and is the indicator that
    tmpbuf[2] is initialized.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_Os_NEEDS_COMMENT (5, "-Wmaybe-uninitialized");
+DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (5, "-Wmaybe-uninitialized");
 #define BODY \
   {									      \
     uint32_t ch;							      \
diff --git a/include/libc-diag.h b/include/libc-diag.h
index 7666a386f3..49e7457c6e 100644
--- a/include/libc-diag.h
+++ b/include/libc-diag.h
@@ -86,9 +86,12 @@
 #ifndef __clang__
 # define DIAG_IGNORE_NEEDS_COMMENT_GCC(VERSION, WARNING) \
   DIAG_IGNORE_NEEDS_COMMENT (VERSION, WARNING)
+# define DIAG_IGNORE_Os_NEEDS_COMMENT_GCC(VERSION, WARNING) \
+  DIAG_IGNORE_Os_NEEDS_COMMENT (VERSION, WARNING)
 # define DIAG_IGNORE_NEEDS_COMMENT_CLANG(version, option)
 #else
 # define DIAG_IGNORE_NEEDS_COMMENT_GCC(VERSION, WARNING)
+# define DIAG_IGNORE_Os_NEEDS_COMMENT_GCC(VERSION, WARNING)
 # define DIAG_IGNORE_NEEDS_COMMENT_CLANG(version, option) \
   _Pragma (_DIAG_STR (clang diagnostic ignored option))
 #endif
diff --git a/inet/net-internal.h b/inet/net-internal.h
index f5749a8662..ad71fbecf0 100644
--- a/inet/net-internal.h
+++ b/inet/net-internal.h
@@ -106,7 +106,7 @@ __deadline_is_infinite (struct deadline deadline)
  *    https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91691
  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (9, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (9, "-Wmaybe-uninitialized");
 
 /* Return true if the current time is at the deadline or past it.  */
 static inline bool
diff --git a/locale/weight.h b/locale/weight.h
index 4c5e8b7a73..7cabfec2bb 100644
--- a/locale/weight.h
+++ b/locale/weight.h
@@ -32,7 +32,7 @@ findidx (const int32_t *table,
      This uninitialized use is impossible for the same reason
      as described in comments in locale/weightwc.h.  */
   DIAG_PUSH_NEEDS_COMMENT;
-  DIAG_IGNORE_Os_NEEDS_COMMENT (8, "-Wmaybe-uninitialized");
+  DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (8, "-Wmaybe-uninitialized");
   int32_t i = table[*(*cpp)++];
   DIAG_POP_NEEDS_COMMENT;
   const unsigned char *cp;
@@ -75,7 +75,7 @@ findidx (const int32_t *table,
 	     of -1 for len at the same time which means that this loop
 	     never executes.  */
 	  DIAG_PUSH_NEEDS_COMMENT;
-	  DIAG_IGNORE_Os_NEEDS_COMMENT (5, "-Wmaybe-uninitialized");
+	  DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (5, "-Wmaybe-uninitialized");
 	  for (cnt = 0; cnt < nhere && cnt < len; ++cnt)
 	    if (cp[cnt] != usrc[cnt])
 	      break;
@@ -144,7 +144,7 @@ findidx (const int32_t *table,
 		     is impossible for the same reason as described
 		     above.  */
 		  DIAG_PUSH_NEEDS_COMMENT;
-		  DIAG_IGNORE_Os_NEEDS_COMMENT (7, "-Wmaybe-uninitialized");
+		  DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (7, "-Wmaybe-uninitialized");
 		  offset += usrc[cnt] - cp[cnt];
 		  DIAG_POP_NEEDS_COMMENT;
 		}
diff --git a/locale/weightwc.h b/locale/weightwc.h
index 5fce8d4448..7072e19017 100644
--- a/locale/weightwc.h
+++ b/locale/weightwc.h
@@ -33,7 +33,7 @@ findidx (const int32_t *table,
      called except in cases where those fields have been
      initialized.  */
   DIAG_PUSH_NEEDS_COMMENT;
-  DIAG_IGNORE_Os_NEEDS_COMMENT (7, "-Wmaybe-uninitialized");
+  DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (7, "-Wmaybe-uninitialized");
   wint_t ch = *(*cpp)++;
   DIAG_POP_NEEDS_COMMENT;
   int32_t i = __collidx_table_lookup ((const char *) table, ch);
@@ -74,7 +74,7 @@ findidx (const int32_t *table,
 	     of -1 for len at the same time which means that this loop
 	     never executes.  */
 	  DIAG_PUSH_NEEDS_COMMENT;
-	  DIAG_IGNORE_Os_NEEDS_COMMENT (5, "-Wmaybe-uninitialized");
+	  DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (5, "-Wmaybe-uninitialized");
 	  for (cnt = 0; cnt < nhere && cnt < len; ++cnt)
 	    if (cp[cnt] != usrc[cnt])
 	      break;
@@ -102,7 +102,7 @@ findidx (const int32_t *table,
 	     might be used uninitialized.  This is impossible for the
 	     same reason as described above.  */
 	  DIAG_PUSH_NEEDS_COMMENT;
-	  DIAG_IGNORE_Os_NEEDS_COMMENT (7, "-Wmaybe-uninitialized");
+	  DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (7, "-Wmaybe-uninitialized");
 	  for (cnt = 0; cnt < nhere - 1 && cnt < len; ++cnt)
 	    if (cp[cnt] != usrc[cnt])
 	      break;
@@ -119,7 +119,7 @@ findidx (const int32_t *table,
 	     might be used uninitialized.  This is impossible for the
 	     same reason as described above.  */
 	  DIAG_PUSH_NEEDS_COMMENT;
-	  DIAG_IGNORE_Os_NEEDS_COMMENT (7, "-Wmaybe-uninitialized");
+	  DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (7, "-Wmaybe-uninitialized");
 	  if (cp[nhere - 1] > usrc[nhere - 1])
 	    {
 	      cp += 2 * nhere;
diff --git a/malloc/malloc-check.c b/malloc/malloc-check.c
index da1158b333..0ccc7672d9 100644
--- a/malloc/malloc-check.c
+++ b/malloc/malloc-check.c
@@ -319,7 +319,7 @@ realloc_check (void *oldmem, size_t bytes)
 #if __GNUC_PREREQ (7, 0)
   /* GCC 7 warns about magic_p may be used uninitialized.  But we never
      reach here if magic_p is uninitialized.  */
-  DIAG_IGNORE_NEEDS_COMMENT (7, "-Wmaybe-uninitialized");
+  DIAG_IGNORE_NEEDS_COMMENT_GCC (7, "-Wmaybe-uninitialized");
 #endif
   /* mem2chunk_check changed the magic byte in the old chunk.
      If newmem is NULL, then the old chunk will still be used though,
diff --git a/nis/nis_table.c b/nis/nis_table.c
index 56c1aa262d..399c16cb86 100644
--- a/nis/nis_table.c
+++ b/nis/nis_table.c
@@ -180,7 +180,7 @@ __follow_path (char **tablepath, char **tableptr, struct ib_request *ibreq,
   /* Since tableptr is only set here, and it's set when tablepath is NULL,
      which it is initially defined as, we know it will always be set here.  */
   DIAG_PUSH_NEEDS_COMMENT;
-  DIAG_IGNORE_NEEDS_COMMENT (4.7, "-Wmaybe-uninitialized");
+  DIAG_IGNORE_NEEDS_COMMENT_GCC (4.7, "-Wmaybe-uninitialized");
 
   if (*tableptr == NULL)
     return NIS_NOTFOUND;
diff --git a/nptl/tst-thread-setspecific.c b/nptl/tst-thread-setspecific.c
index 462c9f0d2b..0008a8ee2f 100644
--- a/nptl/tst-thread-setspecific.c
+++ b/nptl/tst-thread-setspecific.c
@@ -25,7 +25,7 @@
    See BZ #27714.  */
 
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (6, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (6, "-Wmaybe-uninitialized");
 DIAG_IGNORE_NEEDS_COMMENT (6, "-Wuninitialized");
 
 static int
diff --git a/nptl_db/thread_dbP.h b/nptl_db/thread_dbP.h
index 72d5558845..aa9b614cb0 100644
--- a/nptl_db/thread_dbP.h
+++ b/nptl_db/thread_dbP.h
@@ -176,7 +176,7 @@ extern ps_err_e td_mod_lookup (struct ps_prochandle *ps, const char *modname,
    when DB_GET_FIELD_ADDRESS is called with a slot for ptr, the slot is
    always initialized.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_Os_NEEDS_COMMENT (5, "-Wmaybe-uninitialized");
+DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (5, "-Wmaybe-uninitialized");
 #define DB_GET_FIELD_ADDRESS(var, ta, ptr, type, field, idx) \
   ((var) = (ptr), _td_locate_field ((ta), (ta)->ta_field_##type##_##field, \
 				    SYM_##type##_FIELD_##field, \
diff --git a/posix/fnmatch_loop.c b/posix/fnmatch_loop.c
index 6994a09ab5..17fcb58bf4 100644
--- a/posix/fnmatch_loop.c
+++ b/posix/fnmatch_loop.c
@@ -560,7 +560,7 @@ FCT (const CHAR *pattern, const CHAR *string, const CHAR *string_end,
 				   above it will be properly set by the loop.
 				   */
                                 DIAG_PUSH_NEEDS_COMMENT;
-                                DIAG_IGNORE_Os_NEEDS_COMMENT (8, "-Wmaybe-uninitialized");
+                                DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (8, "-Wmaybe-uninitialized");
                                 cold = wextra[1 + wextra[0]];
                                 DIAG_POP_NEEDS_COMMENT;
 # else
@@ -745,7 +745,7 @@ FCT (const CHAR *pattern, const CHAR *string, const CHAR *string_end,
                                        means that it was properly set in the
                                        loop above.   */
                                     DIAG_PUSH_NEEDS_COMMENT;
-                                    DIAG_IGNORE_Os_NEEDS_COMMENT (8, "-Wmaybe-uninitialized");
+                                    DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (8, "-Wmaybe-uninitialized");
                                     cend = wextra[1 + wextra[0]];
                                     DIAG_POP_NEEDS_COMMENT;
 # else
@@ -754,7 +754,7 @@ FCT (const CHAR *pattern, const CHAR *string, const CHAR *string_end,
 				       wextra above it will be properly set by
 				       the loop.   */
                                     DIAG_PUSH_NEEDS_COMMENT;
-                                    DIAG_IGNORE_Os_NEEDS_COMMENT (8, "-Wmaybe-uninitialized");
+                                    DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (8, "-Wmaybe-uninitialized");
                                     idx += 1 + extra[idx];
                                     DIAG_POP_NEEDS_COMMENT;
                                     /* Adjust for the alignment.  */
diff --git a/posix/regexec.c b/posix/regexec.c
index 180e3bce40..13add301f5 100644
--- a/posix/regexec.c
+++ b/posix/regexec.c
@@ -3772,7 +3772,7 @@ check_node_accept_bytes (const re_dfa_t *dfa, Idx node_idx,
 		 however the loop will be executed iff ncoll_syms is larger
 		 than 0,which means extra will be already initialized.  */
 	      DIAG_PUSH_NEEDS_COMMENT;
-	      DIAG_IGNORE_Os_NEEDS_COMMENT (8, "-Wmaybe-uninitialized");
+	      DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (8, "-Wmaybe-uninitialized");
 	      const unsigned char *coll_sym = extra + cset->coll_syms[i];
 	      DIAG_POP_NEEDS_COMMENT;
 	      /* Compare the length of input collating element and
diff --git a/resolv/res_send.c b/resolv/res_send.c
index fb0217204a..c314d9762a 100644
--- a/resolv/res_send.c
+++ b/resolv/res_send.c
@@ -266,7 +266,7 @@ __res_context_send (struct resolv_context *ctx,
 	   Here the variable n is set to the return value of send_vc.
 	   See below.  */
 	DIAG_PUSH_NEEDS_COMMENT;
-	DIAG_IGNORE_NEEDS_COMMENT (9, "-Wmaybe-uninitialized");
+	DIAG_IGNORE_NEEDS_COMMENT_GCC (9, "-Wmaybe-uninitialized");
 	int n;
 	DIAG_POP_NEEDS_COMMENT;
 
@@ -364,7 +364,7 @@ __res_context_send (struct resolv_context *ctx,
 				return (-1);
 			/* See comment at the declaration of n.  */
 			DIAG_PUSH_NEEDS_COMMENT;
-			DIAG_IGNORE_NEEDS_COMMENT (9, "-Wmaybe-uninitialized");
+			DIAG_IGNORE_NEEDS_COMMENT_GCC (9, "-Wmaybe-uninitialized");
 			if (n == 0 && (buf2 == NULL || *resplen2 == 0))
 				goto next_ns;
 			DIAG_POP_NEEDS_COMMENT;
@@ -388,7 +388,7 @@ __res_context_send (struct resolv_context *ctx,
 
 		/* See comment at the declaration of n.  Note: resplen = n;  */
 		DIAG_PUSH_NEEDS_COMMENT;
-		DIAG_IGNORE_NEEDS_COMMENT (9, "-Wmaybe-uninitialized");
+		DIAG_IGNORE_NEEDS_COMMENT_GCC (9, "-Wmaybe-uninitialized");
 		/* Mask the AD bit in both responses unless it is
 		   marked trusted.  */
 		if (resplen > HFIXEDSZ)
@@ -580,7 +580,7 @@ send_vc(res_state statp,
 	   a false-positive.
 	 */
 	DIAG_PUSH_NEEDS_COMMENT;
-	DIAG_IGNORE_NEEDS_COMMENT (5, "-Wmaybe-uninitialized");
+	DIAG_IGNORE_NEEDS_COMMENT_GCC (5, "-Wmaybe-uninitialized");
 	int resplen;
 	DIAG_POP_NEEDS_COMMENT;
 	struct iovec iov[4];
@@ -852,7 +852,7 @@ reopen (res_state statp, int *terrno, int ns)
 		   the function return -1 before control flow reaches
 		   the call to connect with slen.  */
 		DIAG_PUSH_NEEDS_COMMENT;
-		DIAG_IGNORE_Os_NEEDS_COMMENT (5, "-Wmaybe-uninitialized");
+		DIAG_IGNORE_NEEDS_COMMENT_GCC (5, "-Wmaybe-uninitialized");
 		if (__connect (EXT (statp).nssocks[ns], nsap, slen) < 0) {
 		DIAG_POP_NEEDS_COMMENT;
 			__res_iclose(statp, false);
diff --git a/stdio-common/vfscanf-internal.c b/stdio-common/vfscanf-internal.c
index 1b82deffa7..eb66506ca3 100644
--- a/stdio-common/vfscanf-internal.c
+++ b/stdio-common/vfscanf-internal.c
@@ -1608,7 +1608,7 @@ __vfscanf_internal (FILE *s, const char *format, va_list argptr,
 			 above, but the test for "map != NULL" is done
 			 inside the loop here and outside the loop there.  */
 		      DIAG_PUSH_NEEDS_COMMENT;
-		      DIAG_IGNORE_NEEDS_COMMENT (4.7, "-Wmaybe-uninitialized");
+		      DIAG_IGNORE_NEEDS_COMMENT_GCC (4.7, "-Wmaybe-uninitialized");
 
 		      if (__glibc_unlikely (map != NULL))
 			wcdigits[n] = digits_extended[n];
diff --git a/stdlib/bug-getcontext.c b/stdlib/bug-getcontext.c
index 55c681c480..9e5e6c7e1c 100644
--- a/stdlib/bug-getcontext.c
+++ b/stdlib/bug-getcontext.c
@@ -56,7 +56,7 @@ do_test (void)
      in local variables being clobbered on the second return from
      getcontext), in fact an uninitialized use is not possible.  */
   DIAG_PUSH_NEEDS_COMMENT;
-  DIAG_IGNORE_NEEDS_COMMENT (5, "-Wmaybe-uninitialized");
+  DIAG_IGNORE_NEEDS_COMMENT_GCC (5, "-Wmaybe-uninitialized");
   int mask = fegetexcept ();
   if (mask != except_mask)
     {
diff --git a/string/strcoll_l.c b/string/strcoll_l.c
index 06aa1423c0..d68b12e79a 100644
--- a/string/strcoll_l.c
+++ b/string/strcoll_l.c
@@ -180,7 +180,7 @@ get_next_seq (coll_seq *seq, int nrules, const unsigned char *rulesets,
 	 ensures that seq->save_idx was saved to first and contains a
 	 valid value.  */
       DIAG_PUSH_NEEDS_COMMENT;
-      DIAG_IGNORE_Os_NEEDS_COMMENT (5, "-Wmaybe-uninitialized");
+      DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (5, "-Wmaybe-uninitialized");
       len = weights[idx++];
       DIAG_POP_NEEDS_COMMENT;
       /* Skip over indices of previous levels.  */
@@ -299,7 +299,7 @@ STRCOLL (const STRING_TYPE *s1, const STRING_TYPE *s2, locale_t l)
      seq2.  This uninitialized use is impossible for the same reason
      as described in comments in locale/weightwc.h.  */
   DIAG_PUSH_NEEDS_COMMENT;
-  DIAG_IGNORE_Os_NEEDS_COMMENT (7, "-Wmaybe-uninitialized");
+  DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (7, "-Wmaybe-uninitialized");
   coll_seq seq1, seq2;
   DIAG_POP_NEEDS_COMMENT;
   seq1.len = 0;
diff --git a/string/wordcopy.c b/string/wordcopy.c
index 4e77cdb132..083daa658c 100644
--- a/string/wordcopy.c
+++ b/string/wordcopy.c
@@ -29,7 +29,7 @@
    Since the usage is within the MERGE macro we disable the
    warning in the definition, but only in this file.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (6, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (6, "-Wmaybe-uninitialized");
 #include <memcopy.h>
 DIAG_POP_NEEDS_COMMENT;
 
@@ -112,7 +112,7 @@ WORDCOPY_FWD_ALIGNED (long int dstp, long int srcp, size_t len)
 	 case. The switch case always sets 'a1' and all previous loop
 	 iterations will also have set 'a1' before the use.  */
       DIAG_PUSH_NEEDS_COMMENT;
-      DIAG_IGNORE_NEEDS_COMMENT (6, "-Wmaybe-uninitialized");
+      DIAG_IGNORE_NEEDS_COMMENT_GCC (6, "-Wmaybe-uninitialized");
       ((op_t *) dstp)[0] = a1;
       DIAG_POP_NEEDS_COMMENT;
     do7:
@@ -313,7 +313,7 @@ WORDCOPY_BWD_ALIGNED (long int dstp, long int srcp, size_t len)
       a0 = ((op_t *) srcp)[7];
       /* Check the comment on WORDCOPY_FWD_ALIGNED.  */
       DIAG_PUSH_NEEDS_COMMENT;
-      DIAG_IGNORE_NEEDS_COMMENT (6, "-Wmaybe-uninitialized");
+      DIAG_IGNORE_NEEDS_COMMENT_GCC (6, "-Wmaybe-uninitialized");
       ((op_t *) dstp)[7] = a1;
       DIAG_POP_NEEDS_COMMENT;
     do7:
diff --git a/sunrpc/clnt_udp.c b/sunrpc/clnt_udp.c
index ee79b09b40..4353e5da18 100644
--- a/sunrpc/clnt_udp.c
+++ b/sunrpc/clnt_udp.c
@@ -299,7 +299,7 @@ clntudp_call (/* client handle */
      inet/net-internal.h because in some other configurations GCC
      gives the warning in an inline function.  */
   DIAG_PUSH_NEEDS_COMMENT;
-  DIAG_IGNORE_NEEDS_COMMENT (10, "-Wmaybe-uninitialized");
+  DIAG_IGNORE_NEEDS_COMMENT_GCC (10, "-Wmaybe-uninitialized");
   struct deadline total_deadline; /* Determined once by overall timeout.  */
   DIAG_POP_NEEDS_COMMENT;
   struct deadline response_deadline; /* Determined anew for each query.  */
diff --git a/sysdeps/ieee754/dbl-64/e_lgamma_r.c b/sysdeps/ieee754/dbl-64/e_lgamma_r.c
index 72c68b6682..c298c8ca03 100644
--- a/sysdeps/ieee754/dbl-64/e_lgamma_r.c
+++ b/sysdeps/ieee754/dbl-64/e_lgamma_r.c
@@ -304,7 +304,7 @@ __ieee754_lgamma_r(double x, int *signgamp)
 	   although in the cases where it is used it has always been
 	   set.  */
 	DIAG_PUSH_NEEDS_COMMENT;
-	DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+	DIAG_IGNORE_NEEDS_COMMENT_GCC (4.9, "-Wmaybe-uninitialized");
 	if(hx<0) r = nadj - r;
 	DIAG_POP_NEEDS_COMMENT;
 	return r;
diff --git a/sysdeps/ieee754/dbl-64/s_log1p.c b/sysdeps/ieee754/dbl-64/s_log1p.c
index eeb0af859f..f52c0124fc 100644
--- a/sysdeps/ieee754/dbl-64/s_log1p.c
+++ b/sysdeps/ieee754/dbl-64/s_log1p.c
@@ -205,7 +205,7 @@ __log1p (double x)
 	 must be 0 for c to be uninitialized and we handled that
 	 computation earlier without using c.  */
       DIAG_PUSH_NEEDS_COMMENT;
-      DIAG_IGNORE_Os_NEEDS_COMMENT (7, "-Wmaybe-uninitialized");
+      DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (7, "-Wmaybe-uninitialized");
       return k * ln2_hi - ((hfsq - (s * (hfsq + R) + (k * ln2_lo + c))) - f);
       DIAG_POP_NEEDS_COMMENT;
     }
diff --git a/sysdeps/ieee754/flt-32/e_lgammaf_r.c b/sysdeps/ieee754/flt-32/e_lgammaf_r.c
index a1a3a60454..77dc54eaeb 100644
--- a/sysdeps/ieee754/flt-32/e_lgammaf_r.c
+++ b/sysdeps/ieee754/flt-32/e_lgammaf_r.c
@@ -239,7 +239,7 @@ __ieee754_lgammaf_r(float x, int *signgamp)
 	   although in the cases where it is used it has always been
 	   set.  */
 	DIAG_PUSH_NEEDS_COMMENT;
-	DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+	DIAG_IGNORE_NEEDS_COMMENT_GCC (4.9, "-Wmaybe-uninitialized");
 	if(hx<0) r = nadj - r;
 	DIAG_POP_NEEDS_COMMENT;
 	return r;
diff --git a/sysdeps/ieee754/flt-32/s_log1pf.c b/sysdeps/ieee754/flt-32/s_log1pf.c
index 555f0f82c8..cddc0f1e09 100644
--- a/sysdeps/ieee754/flt-32/s_log1pf.c
+++ b/sysdeps/ieee754/flt-32/s_log1pf.c
@@ -108,7 +108,7 @@ __log1pf(float x)
 	       because k must be 0 for c to be uninitialized and we
 	       handled that computation earlier without using c.  */
 	    DIAG_PUSH_NEEDS_COMMENT;
-	    DIAG_IGNORE_Os_NEEDS_COMMENT (7, "-Wmaybe-uninitialized");
+	    DIAG_IGNORE_Os_NEEDS_COMMENT_GCC (7, "-Wmaybe-uninitialized");
 	    return k * ln2_hi - ((hfsq - (s * (hfsq + R)
 					  + (k * ln2_lo + c))) - f);
 	    DIAG_POP_NEEDS_COMMENT;
diff --git a/sysdeps/ieee754/ldbl-128/k_tanl.c b/sysdeps/ieee754/ldbl-128/k_tanl.c
index 8e93626a89..af10fbc64b 100644
--- a/sysdeps/ieee754/ldbl-128/k_tanl.c
+++ b/sysdeps/ieee754/ldbl-128/k_tanl.c
@@ -143,7 +143,7 @@ __kernel_tanl (_Float128 x, _Float128 y, int iy)
 	 uninitialized although in the cases where it is used it has
 	 always been set.  */
       DIAG_PUSH_NEEDS_COMMENT;
-      DIAG_IGNORE_NEEDS_COMMENT (5, "-Wmaybe-uninitialized");
+      DIAG_IGNORE_NEEDS_COMMENT_GCC (5, "-Wmaybe-uninitialized");
       if (sign < 0)
 	w = -w;
       DIAG_POP_NEEDS_COMMENT;
diff --git a/sysdeps/ieee754/ldbl-128ibm/k_tanl.c b/sysdeps/ieee754/ldbl-128ibm/k_tanl.c
index cd95e46089..7a42a18e55 100644
--- a/sysdeps/ieee754/ldbl-128ibm/k_tanl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/k_tanl.c
@@ -143,7 +143,7 @@ __kernel_tanl (long double x, long double y, int iy)
 	 uninitialized although in the cases where it is used it has
 	 always been set.  */
       DIAG_PUSH_NEEDS_COMMENT;
-      DIAG_IGNORE_NEEDS_COMMENT (5, "-Wmaybe-uninitialized");
+      DIAG_IGNORE_NEEDS_COMMENT_GCC (5, "-Wmaybe-uninitialized");
       if (sign < 0)
 	w = -w;
       DIAG_POP_NEEDS_COMMENT;
diff --git a/sysdeps/ieee754/ldbl-96/e_lgammal_r.c b/sysdeps/ieee754/ldbl-96/e_lgammal_r.c
index 148c21bb8d..d4fd7f5272 100644
--- a/sysdeps/ieee754/ldbl-96/e_lgammal_r.c
+++ b/sysdeps/ieee754/ldbl-96/e_lgammal_r.c
@@ -431,7 +431,7 @@ __ieee754_lgammal_r (long double x, int *signgamp)
      in warnings that it may be used uninitialized although in the
      cases where it is used it has always been set.  */
   DIAG_PUSH_NEEDS_COMMENT;
-  DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+  DIAG_IGNORE_NEEDS_COMMENT_GCC (4.9, "-Wmaybe-uninitialized");
   if (se & 0x8000)
     r = nadj - r;
   DIAG_POP_NEEDS_COMMENT;
diff --git a/sysdeps/ieee754/ldbl-96/k_tanl.c b/sysdeps/ieee754/ldbl-96/k_tanl.c
index 43a5aa4423..462795574f 100644
--- a/sysdeps/ieee754/ldbl-96/k_tanl.c
+++ b/sysdeps/ieee754/ldbl-96/k_tanl.c
@@ -140,7 +140,7 @@ __kernel_tanl (long double x, long double y, int iy)
         uninitialized although in the cases where it is used it has
         always been set.  */
       DIAG_PUSH_NEEDS_COMMENT;
-      DIAG_IGNORE_NEEDS_COMMENT (4.8, "-Wmaybe-uninitialized");
+      DIAG_IGNORE_NEEDS_COMMENT_GCC (4.8, "-Wmaybe-uninitialized");
       if (sign < 0)
 	w = -w;
       DIAG_POP_NEEDS_COMMENT;
diff --git a/sysdeps/ieee754/soft-fp/s_ddivl.c b/sysdeps/ieee754/soft-fp/s_ddivl.c
index 07a6210319..e34244baf5 100644
--- a/sysdeps/ieee754/soft-fp/s_ddivl.c
+++ b/sysdeps/ieee754/soft-fp/s_ddivl.c
@@ -37,7 +37,7 @@
    versions of GCC, it may be where R is defined using a macro or it
    may be where the macro is defined.  This happens only with -O1.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (8, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (8, "-Wmaybe-uninitialized");
 #include <soft-fp.h>
 #include <double.h>
 #include <quad.h>
diff --git a/sysdeps/ieee754/soft-fp/s_dfmal.c b/sysdeps/ieee754/soft-fp/s_dfmal.c
index 9f537c527d..05fb1a7585 100644
--- a/sysdeps/ieee754/soft-fp/s_dfmal.c
+++ b/sysdeps/ieee754/soft-fp/s_dfmal.c
@@ -37,7 +37,7 @@
    it may be where R is defined using a macro or it may be where the
    macro is defined.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (4.9, "-Wmaybe-uninitialized");
 
 #include <soft-fp.h>
 #include <double.h>
diff --git a/sysdeps/ieee754/soft-fp/s_dsqrtl.c b/sysdeps/ieee754/soft-fp/s_dsqrtl.c
index 2b78065823..2e568009a4 100644
--- a/sysdeps/ieee754/soft-fp/s_dsqrtl.c
+++ b/sysdeps/ieee754/soft-fp/s_dsqrtl.c
@@ -35,7 +35,7 @@
    does not see that they are set in all cases where they are used,
    resulting in warnings that they may be used uninitialized.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (7, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (7, "-Wmaybe-uninitialized");
 #include <soft-fp.h>
 #include <double.h>
 #include <quad.h>
diff --git a/sysdeps/ieee754/soft-fp/s_fdiv.c b/sysdeps/ieee754/soft-fp/s_fdiv.c
index 8c92aa6fb2..4511c5ef67 100644
--- a/sysdeps/ieee754/soft-fp/s_fdiv.c
+++ b/sysdeps/ieee754/soft-fp/s_fdiv.c
@@ -34,7 +34,7 @@
    versions of GCC, it may be where R is defined using a macro or it
    may be where the macro is defined.  This happens only with -O1.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (8, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (8, "-Wmaybe-uninitialized");
 #include <soft-fp.h>
 #include <single.h>
 #include <double.h>
diff --git a/sysdeps/ieee754/soft-fp/s_fdivl.c b/sysdeps/ieee754/soft-fp/s_fdivl.c
index b99c9e9335..54d4b760f5 100644
--- a/sysdeps/ieee754/soft-fp/s_fdivl.c
+++ b/sysdeps/ieee754/soft-fp/s_fdivl.c
@@ -33,7 +33,7 @@
    versions of GCC, it may be where R is defined using a macro or it
    may be where the macro is defined.  This happens only with -O1.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (8, "-Wmaybe-uninitialized");
+(8);
 #include <soft-fp.h>
 #include <single.h>
 #include <quad.h>
diff --git a/sysdeps/ieee754/soft-fp/s_ffma.c b/sysdeps/ieee754/soft-fp/s_ffma.c
index f63f4e2418..be3cf0caf5 100644
--- a/sysdeps/ieee754/soft-fp/s_ffma.c
+++ b/sysdeps/ieee754/soft-fp/s_ffma.c
@@ -35,7 +35,7 @@
    it may be where R is defined using a macro or it may be where the
    macro is defined.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (4.9, "-Wmaybe-uninitialized");
 
 #include <soft-fp.h>
 #include <single.h>
diff --git a/sysdeps/ieee754/soft-fp/s_ffmal.c b/sysdeps/ieee754/soft-fp/s_ffmal.c
index 6d723ed046..f3785b1a5b 100644
--- a/sysdeps/ieee754/soft-fp/s_ffmal.c
+++ b/sysdeps/ieee754/soft-fp/s_ffmal.c
@@ -33,7 +33,7 @@
    it may be where R is defined using a macro or it may be where the
    macro is defined.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (4.9, "-Wmaybe-uninitialized");
 
 #include <soft-fp.h>
 #include <single.h>
diff --git a/sysdeps/ieee754/soft-fp/s_fma.c b/sysdeps/ieee754/soft-fp/s_fma.c
index 67e31e6209..ffcbaf48b3 100644
--- a/sysdeps/ieee754/soft-fp/s_fma.c
+++ b/sysdeps/ieee754/soft-fp/s_fma.c
@@ -42,7 +42,7 @@
    it may be where R is defined using a macro or it may be where the
    macro is defined.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (4.9, "-Wmaybe-uninitialized");
 
 #include "soft-fp.h"
 #include "double.h"
diff --git a/sysdeps/ieee754/soft-fp/s_fmaf.c b/sysdeps/ieee754/soft-fp/s_fmaf.c
index a57e949fa5..95e5a34e1b 100644
--- a/sysdeps/ieee754/soft-fp/s_fmaf.c
+++ b/sysdeps/ieee754/soft-fp/s_fmaf.c
@@ -37,7 +37,7 @@
    it may be where R is defined using a macro or it may be where the
    macro is defined.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (4.9, "-Wmaybe-uninitialized");
 
 #include "soft-fp.h"
 #include "single.h"
diff --git a/sysdeps/ieee754/soft-fp/s_fmal.c b/sysdeps/ieee754/soft-fp/s_fmal.c
index 1973a21f19..22ffc7cebd 100644
--- a/sysdeps/ieee754/soft-fp/s_fmal.c
+++ b/sysdeps/ieee754/soft-fp/s_fmal.c
@@ -40,7 +40,7 @@
    it may be where R is defined using a macro or it may be where the
    macro is defined.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (4.9, "-Wmaybe-uninitialized");
 
 #include "soft-fp.h"
 #include "quad.h"
diff --git a/sysdeps/ieee754/soft-fp/s_fsqrt.c b/sysdeps/ieee754/soft-fp/s_fsqrt.c
index f64ae8262c..5162bd17db 100644
--- a/sysdeps/ieee754/soft-fp/s_fsqrt.c
+++ b/sysdeps/ieee754/soft-fp/s_fsqrt.c
@@ -33,7 +33,7 @@
    versions of GCC, it may be where R is defined using a macro or it
    may be where the macro is defined.  This happens only with -O1.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (8, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (8, "-Wmaybe-uninitialized");
 #include <soft-fp.h>
 #include <single.h>
 #include <double.h>
diff --git a/sysdeps/unix/sysv/linux/convert_scm_timestamps.c b/sysdeps/unix/sysv/linux/convert_scm_timestamps.c
index 3720bd9591..399fe597e3 100644
--- a/sysdeps/unix/sysv/linux/convert_scm_timestamps.c
+++ b/sysdeps/unix/sysv/linux/convert_scm_timestamps.c
@@ -51,7 +51,7 @@ __convert_scm_timestamps (struct msghdr *msg, socklen_t msgsize)
      (done by either COMPAT_SO_TIMESTAMP_OLD or COMPAT_SO_TIMESTAMPNS_OLD)
      which will fallthrough to 'common' label.  */
   DIAG_PUSH_NEEDS_COMMENT;
-  DIAG_IGNORE_NEEDS_COMMENT (6, "-Wmaybe-uninitialized");
+  DIAG_IGNORE_NEEDS_COMMENT_GCC (6, "-Wmaybe-uninitialized");
   int64_t tvts[2];
   DIAG_POP_NEEDS_COMMENT;
   int32_t tmp[2];

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [glibc/azanella/clang] Suppress -Wmaybe-uninitialized only for gcc
@ 2024-01-29 17:54 Adhemerval Zanella
  0 siblings, 0 replies; 7+ messages in thread
From: Adhemerval Zanella @ 2024-01-29 17:54 UTC (permalink / raw)
  To: glibc-cvs

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=6da482c43396f8a00cb426813ae8789ad747ef08

commit 6da482c43396f8a00cb426813ae8789ad747ef08
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Wed Mar 9 15:51:50 2022 -0300

    Suppress -Wmaybe-uninitialized only for gcc
    
    The warning is not supported by clang.

Diff:
---
 hurd/hurdsig.c                                   |  2 +-
 inet/net-internal.h                              |  2 +-
 malloc/malloc-check.c                            |  2 +-
 nis/nis_table.c                                  |  2 +-
 nptl/tst-thread-setspecific.c                    |  2 +-
 resolv/res_send.c                                | 10 +++++-----
 stdio-common/vfscanf-internal.c                  |  2 +-
 stdlib/bug-getcontext.c                          |  2 +-
 string/wordcopy.c                                |  6 +++---
 sunrpc/clnt_udp.c                                |  2 +-
 sysdeps/ieee754/dbl-64/e_lgamma_r.c              |  2 +-
 sysdeps/ieee754/flt-32/e_lgammaf_r.c             |  2 +-
 sysdeps/ieee754/ldbl-128/k_tanl.c                |  2 +-
 sysdeps/ieee754/ldbl-128ibm/k_tanl.c             |  2 +-
 sysdeps/ieee754/ldbl-96/e_lgammal_r.c            |  2 +-
 sysdeps/ieee754/ldbl-96/k_tanl.c                 |  2 +-
 sysdeps/ieee754/soft-fp/s_ddivl.c                |  2 +-
 sysdeps/ieee754/soft-fp/s_dfmal.c                |  2 +-
 sysdeps/ieee754/soft-fp/s_dsqrtl.c               |  2 +-
 sysdeps/ieee754/soft-fp/s_fdiv.c                 |  2 +-
 sysdeps/ieee754/soft-fp/s_fdivl.c                |  2 +-
 sysdeps/ieee754/soft-fp/s_ffma.c                 |  2 +-
 sysdeps/ieee754/soft-fp/s_ffmal.c                |  2 +-
 sysdeps/ieee754/soft-fp/s_fma.c                  |  2 +-
 sysdeps/ieee754/soft-fp/s_fmaf.c                 |  2 +-
 sysdeps/ieee754/soft-fp/s_fmal.c                 |  2 +-
 sysdeps/unix/sysv/linux/convert_scm_timestamps.c |  2 +-
 27 files changed, 33 insertions(+), 33 deletions(-)

diff --git a/hurd/hurdsig.c b/hurd/hurdsig.c
index 882a03471d..3164f3be5f 100644
--- a/hurd/hurdsig.c
+++ b/hurd/hurdsig.c
@@ -376,7 +376,7 @@ interrupted_reply_port_location (thread_t thread,
   /* GCC 6 and before seem to be confused by the setjmp call inside
      _hurdsig_catch_memory_fault and think that we may be returning a second
      time to here with portloc uninitialized (but we never do). */
-  DIAG_IGNORE_NEEDS_COMMENT (6, "-Wmaybe-uninitialized");
+  DIAG_IGNORE_NEEDS_COMMENT_GCC (6, "-Wmaybe-uninitialized");
   /* Fault now if this pointer is bogus.  */
   *(volatile mach_port_t *) portloc = *portloc;
   DIAG_POP_NEEDS_COMMENT;
diff --git a/inet/net-internal.h b/inet/net-internal.h
index f5749a8662..ad71fbecf0 100644
--- a/inet/net-internal.h
+++ b/inet/net-internal.h
@@ -106,7 +106,7 @@ __deadline_is_infinite (struct deadline deadline)
  *    https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91691
  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (9, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (9, "-Wmaybe-uninitialized");
 
 /* Return true if the current time is at the deadline or past it.  */
 static inline bool
diff --git a/malloc/malloc-check.c b/malloc/malloc-check.c
index da1158b333..0ccc7672d9 100644
--- a/malloc/malloc-check.c
+++ b/malloc/malloc-check.c
@@ -319,7 +319,7 @@ realloc_check (void *oldmem, size_t bytes)
 #if __GNUC_PREREQ (7, 0)
   /* GCC 7 warns about magic_p may be used uninitialized.  But we never
      reach here if magic_p is uninitialized.  */
-  DIAG_IGNORE_NEEDS_COMMENT (7, "-Wmaybe-uninitialized");
+  DIAG_IGNORE_NEEDS_COMMENT_GCC (7, "-Wmaybe-uninitialized");
 #endif
   /* mem2chunk_check changed the magic byte in the old chunk.
      If newmem is NULL, then the old chunk will still be used though,
diff --git a/nis/nis_table.c b/nis/nis_table.c
index 56c1aa262d..399c16cb86 100644
--- a/nis/nis_table.c
+++ b/nis/nis_table.c
@@ -180,7 +180,7 @@ __follow_path (char **tablepath, char **tableptr, struct ib_request *ibreq,
   /* Since tableptr is only set here, and it's set when tablepath is NULL,
      which it is initially defined as, we know it will always be set here.  */
   DIAG_PUSH_NEEDS_COMMENT;
-  DIAG_IGNORE_NEEDS_COMMENT (4.7, "-Wmaybe-uninitialized");
+  DIAG_IGNORE_NEEDS_COMMENT_GCC (4.7, "-Wmaybe-uninitialized");
 
   if (*tableptr == NULL)
     return NIS_NOTFOUND;
diff --git a/nptl/tst-thread-setspecific.c b/nptl/tst-thread-setspecific.c
index 462c9f0d2b..0008a8ee2f 100644
--- a/nptl/tst-thread-setspecific.c
+++ b/nptl/tst-thread-setspecific.c
@@ -25,7 +25,7 @@
    See BZ #27714.  */
 
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (6, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (6, "-Wmaybe-uninitialized");
 DIAG_IGNORE_NEEDS_COMMENT (6, "-Wuninitialized");
 
 static int
diff --git a/resolv/res_send.c b/resolv/res_send.c
index fb0217204a..c314d9762a 100644
--- a/resolv/res_send.c
+++ b/resolv/res_send.c
@@ -266,7 +266,7 @@ __res_context_send (struct resolv_context *ctx,
 	   Here the variable n is set to the return value of send_vc.
 	   See below.  */
 	DIAG_PUSH_NEEDS_COMMENT;
-	DIAG_IGNORE_NEEDS_COMMENT (9, "-Wmaybe-uninitialized");
+	DIAG_IGNORE_NEEDS_COMMENT_GCC (9, "-Wmaybe-uninitialized");
 	int n;
 	DIAG_POP_NEEDS_COMMENT;
 
@@ -364,7 +364,7 @@ __res_context_send (struct resolv_context *ctx,
 				return (-1);
 			/* See comment at the declaration of n.  */
 			DIAG_PUSH_NEEDS_COMMENT;
-			DIAG_IGNORE_NEEDS_COMMENT (9, "-Wmaybe-uninitialized");
+			DIAG_IGNORE_NEEDS_COMMENT_GCC (9, "-Wmaybe-uninitialized");
 			if (n == 0 && (buf2 == NULL || *resplen2 == 0))
 				goto next_ns;
 			DIAG_POP_NEEDS_COMMENT;
@@ -388,7 +388,7 @@ __res_context_send (struct resolv_context *ctx,
 
 		/* See comment at the declaration of n.  Note: resplen = n;  */
 		DIAG_PUSH_NEEDS_COMMENT;
-		DIAG_IGNORE_NEEDS_COMMENT (9, "-Wmaybe-uninitialized");
+		DIAG_IGNORE_NEEDS_COMMENT_GCC (9, "-Wmaybe-uninitialized");
 		/* Mask the AD bit in both responses unless it is
 		   marked trusted.  */
 		if (resplen > HFIXEDSZ)
@@ -580,7 +580,7 @@ send_vc(res_state statp,
 	   a false-positive.
 	 */
 	DIAG_PUSH_NEEDS_COMMENT;
-	DIAG_IGNORE_NEEDS_COMMENT (5, "-Wmaybe-uninitialized");
+	DIAG_IGNORE_NEEDS_COMMENT_GCC (5, "-Wmaybe-uninitialized");
 	int resplen;
 	DIAG_POP_NEEDS_COMMENT;
 	struct iovec iov[4];
@@ -852,7 +852,7 @@ reopen (res_state statp, int *terrno, int ns)
 		   the function return -1 before control flow reaches
 		   the call to connect with slen.  */
 		DIAG_PUSH_NEEDS_COMMENT;
-		DIAG_IGNORE_Os_NEEDS_COMMENT (5, "-Wmaybe-uninitialized");
+		DIAG_IGNORE_NEEDS_COMMENT_GCC (5, "-Wmaybe-uninitialized");
 		if (__connect (EXT (statp).nssocks[ns], nsap, slen) < 0) {
 		DIAG_POP_NEEDS_COMMENT;
 			__res_iclose(statp, false);
diff --git a/stdio-common/vfscanf-internal.c b/stdio-common/vfscanf-internal.c
index 1b82deffa7..eb66506ca3 100644
--- a/stdio-common/vfscanf-internal.c
+++ b/stdio-common/vfscanf-internal.c
@@ -1608,7 +1608,7 @@ __vfscanf_internal (FILE *s, const char *format, va_list argptr,
 			 above, but the test for "map != NULL" is done
 			 inside the loop here and outside the loop there.  */
 		      DIAG_PUSH_NEEDS_COMMENT;
-		      DIAG_IGNORE_NEEDS_COMMENT (4.7, "-Wmaybe-uninitialized");
+		      DIAG_IGNORE_NEEDS_COMMENT_GCC (4.7, "-Wmaybe-uninitialized");
 
 		      if (__glibc_unlikely (map != NULL))
 			wcdigits[n] = digits_extended[n];
diff --git a/stdlib/bug-getcontext.c b/stdlib/bug-getcontext.c
index 55c681c480..9e5e6c7e1c 100644
--- a/stdlib/bug-getcontext.c
+++ b/stdlib/bug-getcontext.c
@@ -56,7 +56,7 @@ do_test (void)
      in local variables being clobbered on the second return from
      getcontext), in fact an uninitialized use is not possible.  */
   DIAG_PUSH_NEEDS_COMMENT;
-  DIAG_IGNORE_NEEDS_COMMENT (5, "-Wmaybe-uninitialized");
+  DIAG_IGNORE_NEEDS_COMMENT_GCC (5, "-Wmaybe-uninitialized");
   int mask = fegetexcept ();
   if (mask != except_mask)
     {
diff --git a/string/wordcopy.c b/string/wordcopy.c
index 4e77cdb132..083daa658c 100644
--- a/string/wordcopy.c
+++ b/string/wordcopy.c
@@ -29,7 +29,7 @@
    Since the usage is within the MERGE macro we disable the
    warning in the definition, but only in this file.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (6, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (6, "-Wmaybe-uninitialized");
 #include <memcopy.h>
 DIAG_POP_NEEDS_COMMENT;
 
@@ -112,7 +112,7 @@ WORDCOPY_FWD_ALIGNED (long int dstp, long int srcp, size_t len)
 	 case. The switch case always sets 'a1' and all previous loop
 	 iterations will also have set 'a1' before the use.  */
       DIAG_PUSH_NEEDS_COMMENT;
-      DIAG_IGNORE_NEEDS_COMMENT (6, "-Wmaybe-uninitialized");
+      DIAG_IGNORE_NEEDS_COMMENT_GCC (6, "-Wmaybe-uninitialized");
       ((op_t *) dstp)[0] = a1;
       DIAG_POP_NEEDS_COMMENT;
     do7:
@@ -313,7 +313,7 @@ WORDCOPY_BWD_ALIGNED (long int dstp, long int srcp, size_t len)
       a0 = ((op_t *) srcp)[7];
       /* Check the comment on WORDCOPY_FWD_ALIGNED.  */
       DIAG_PUSH_NEEDS_COMMENT;
-      DIAG_IGNORE_NEEDS_COMMENT (6, "-Wmaybe-uninitialized");
+      DIAG_IGNORE_NEEDS_COMMENT_GCC (6, "-Wmaybe-uninitialized");
       ((op_t *) dstp)[7] = a1;
       DIAG_POP_NEEDS_COMMENT;
     do7:
diff --git a/sunrpc/clnt_udp.c b/sunrpc/clnt_udp.c
index ee79b09b40..4353e5da18 100644
--- a/sunrpc/clnt_udp.c
+++ b/sunrpc/clnt_udp.c
@@ -299,7 +299,7 @@ clntudp_call (/* client handle */
      inet/net-internal.h because in some other configurations GCC
      gives the warning in an inline function.  */
   DIAG_PUSH_NEEDS_COMMENT;
-  DIAG_IGNORE_NEEDS_COMMENT (10, "-Wmaybe-uninitialized");
+  DIAG_IGNORE_NEEDS_COMMENT_GCC (10, "-Wmaybe-uninitialized");
   struct deadline total_deadline; /* Determined once by overall timeout.  */
   DIAG_POP_NEEDS_COMMENT;
   struct deadline response_deadline; /* Determined anew for each query.  */
diff --git a/sysdeps/ieee754/dbl-64/e_lgamma_r.c b/sysdeps/ieee754/dbl-64/e_lgamma_r.c
index 72c68b6682..c298c8ca03 100644
--- a/sysdeps/ieee754/dbl-64/e_lgamma_r.c
+++ b/sysdeps/ieee754/dbl-64/e_lgamma_r.c
@@ -304,7 +304,7 @@ __ieee754_lgamma_r(double x, int *signgamp)
 	   although in the cases where it is used it has always been
 	   set.  */
 	DIAG_PUSH_NEEDS_COMMENT;
-	DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+	DIAG_IGNORE_NEEDS_COMMENT_GCC (4.9, "-Wmaybe-uninitialized");
 	if(hx<0) r = nadj - r;
 	DIAG_POP_NEEDS_COMMENT;
 	return r;
diff --git a/sysdeps/ieee754/flt-32/e_lgammaf_r.c b/sysdeps/ieee754/flt-32/e_lgammaf_r.c
index a1a3a60454..77dc54eaeb 100644
--- a/sysdeps/ieee754/flt-32/e_lgammaf_r.c
+++ b/sysdeps/ieee754/flt-32/e_lgammaf_r.c
@@ -239,7 +239,7 @@ __ieee754_lgammaf_r(float x, int *signgamp)
 	   although in the cases where it is used it has always been
 	   set.  */
 	DIAG_PUSH_NEEDS_COMMENT;
-	DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+	DIAG_IGNORE_NEEDS_COMMENT_GCC (4.9, "-Wmaybe-uninitialized");
 	if(hx<0) r = nadj - r;
 	DIAG_POP_NEEDS_COMMENT;
 	return r;
diff --git a/sysdeps/ieee754/ldbl-128/k_tanl.c b/sysdeps/ieee754/ldbl-128/k_tanl.c
index 8e93626a89..af10fbc64b 100644
--- a/sysdeps/ieee754/ldbl-128/k_tanl.c
+++ b/sysdeps/ieee754/ldbl-128/k_tanl.c
@@ -143,7 +143,7 @@ __kernel_tanl (_Float128 x, _Float128 y, int iy)
 	 uninitialized although in the cases where it is used it has
 	 always been set.  */
       DIAG_PUSH_NEEDS_COMMENT;
-      DIAG_IGNORE_NEEDS_COMMENT (5, "-Wmaybe-uninitialized");
+      DIAG_IGNORE_NEEDS_COMMENT_GCC (5, "-Wmaybe-uninitialized");
       if (sign < 0)
 	w = -w;
       DIAG_POP_NEEDS_COMMENT;
diff --git a/sysdeps/ieee754/ldbl-128ibm/k_tanl.c b/sysdeps/ieee754/ldbl-128ibm/k_tanl.c
index cd95e46089..7a42a18e55 100644
--- a/sysdeps/ieee754/ldbl-128ibm/k_tanl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/k_tanl.c
@@ -143,7 +143,7 @@ __kernel_tanl (long double x, long double y, int iy)
 	 uninitialized although in the cases where it is used it has
 	 always been set.  */
       DIAG_PUSH_NEEDS_COMMENT;
-      DIAG_IGNORE_NEEDS_COMMENT (5, "-Wmaybe-uninitialized");
+      DIAG_IGNORE_NEEDS_COMMENT_GCC (5, "-Wmaybe-uninitialized");
       if (sign < 0)
 	w = -w;
       DIAG_POP_NEEDS_COMMENT;
diff --git a/sysdeps/ieee754/ldbl-96/e_lgammal_r.c b/sysdeps/ieee754/ldbl-96/e_lgammal_r.c
index 148c21bb8d..d4fd7f5272 100644
--- a/sysdeps/ieee754/ldbl-96/e_lgammal_r.c
+++ b/sysdeps/ieee754/ldbl-96/e_lgammal_r.c
@@ -431,7 +431,7 @@ __ieee754_lgammal_r (long double x, int *signgamp)
      in warnings that it may be used uninitialized although in the
      cases where it is used it has always been set.  */
   DIAG_PUSH_NEEDS_COMMENT;
-  DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+  DIAG_IGNORE_NEEDS_COMMENT_GCC (4.9, "-Wmaybe-uninitialized");
   if (se & 0x8000)
     r = nadj - r;
   DIAG_POP_NEEDS_COMMENT;
diff --git a/sysdeps/ieee754/ldbl-96/k_tanl.c b/sysdeps/ieee754/ldbl-96/k_tanl.c
index 43a5aa4423..462795574f 100644
--- a/sysdeps/ieee754/ldbl-96/k_tanl.c
+++ b/sysdeps/ieee754/ldbl-96/k_tanl.c
@@ -140,7 +140,7 @@ __kernel_tanl (long double x, long double y, int iy)
         uninitialized although in the cases where it is used it has
         always been set.  */
       DIAG_PUSH_NEEDS_COMMENT;
-      DIAG_IGNORE_NEEDS_COMMENT (4.8, "-Wmaybe-uninitialized");
+      DIAG_IGNORE_NEEDS_COMMENT_GCC (4.8, "-Wmaybe-uninitialized");
       if (sign < 0)
 	w = -w;
       DIAG_POP_NEEDS_COMMENT;
diff --git a/sysdeps/ieee754/soft-fp/s_ddivl.c b/sysdeps/ieee754/soft-fp/s_ddivl.c
index 07a6210319..e34244baf5 100644
--- a/sysdeps/ieee754/soft-fp/s_ddivl.c
+++ b/sysdeps/ieee754/soft-fp/s_ddivl.c
@@ -37,7 +37,7 @@
    versions of GCC, it may be where R is defined using a macro or it
    may be where the macro is defined.  This happens only with -O1.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (8, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (8, "-Wmaybe-uninitialized");
 #include <soft-fp.h>
 #include <double.h>
 #include <quad.h>
diff --git a/sysdeps/ieee754/soft-fp/s_dfmal.c b/sysdeps/ieee754/soft-fp/s_dfmal.c
index 9f537c527d..05fb1a7585 100644
--- a/sysdeps/ieee754/soft-fp/s_dfmal.c
+++ b/sysdeps/ieee754/soft-fp/s_dfmal.c
@@ -37,7 +37,7 @@
    it may be where R is defined using a macro or it may be where the
    macro is defined.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (4.9, "-Wmaybe-uninitialized");
 
 #include <soft-fp.h>
 #include <double.h>
diff --git a/sysdeps/ieee754/soft-fp/s_dsqrtl.c b/sysdeps/ieee754/soft-fp/s_dsqrtl.c
index 2b78065823..2e568009a4 100644
--- a/sysdeps/ieee754/soft-fp/s_dsqrtl.c
+++ b/sysdeps/ieee754/soft-fp/s_dsqrtl.c
@@ -35,7 +35,7 @@
    does not see that they are set in all cases where they are used,
    resulting in warnings that they may be used uninitialized.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (7, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (7, "-Wmaybe-uninitialized");
 #include <soft-fp.h>
 #include <double.h>
 #include <quad.h>
diff --git a/sysdeps/ieee754/soft-fp/s_fdiv.c b/sysdeps/ieee754/soft-fp/s_fdiv.c
index 8c92aa6fb2..4511c5ef67 100644
--- a/sysdeps/ieee754/soft-fp/s_fdiv.c
+++ b/sysdeps/ieee754/soft-fp/s_fdiv.c
@@ -34,7 +34,7 @@
    versions of GCC, it may be where R is defined using a macro or it
    may be where the macro is defined.  This happens only with -O1.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (8, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (8, "-Wmaybe-uninitialized");
 #include <soft-fp.h>
 #include <single.h>
 #include <double.h>
diff --git a/sysdeps/ieee754/soft-fp/s_fdivl.c b/sysdeps/ieee754/soft-fp/s_fdivl.c
index b99c9e9335..54d4b760f5 100644
--- a/sysdeps/ieee754/soft-fp/s_fdivl.c
+++ b/sysdeps/ieee754/soft-fp/s_fdivl.c
@@ -33,7 +33,7 @@
    versions of GCC, it may be where R is defined using a macro or it
    may be where the macro is defined.  This happens only with -O1.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (8, "-Wmaybe-uninitialized");
+(8);
 #include <soft-fp.h>
 #include <single.h>
 #include <quad.h>
diff --git a/sysdeps/ieee754/soft-fp/s_ffma.c b/sysdeps/ieee754/soft-fp/s_ffma.c
index f63f4e2418..be3cf0caf5 100644
--- a/sysdeps/ieee754/soft-fp/s_ffma.c
+++ b/sysdeps/ieee754/soft-fp/s_ffma.c
@@ -35,7 +35,7 @@
    it may be where R is defined using a macro or it may be where the
    macro is defined.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (4.9, "-Wmaybe-uninitialized");
 
 #include <soft-fp.h>
 #include <single.h>
diff --git a/sysdeps/ieee754/soft-fp/s_ffmal.c b/sysdeps/ieee754/soft-fp/s_ffmal.c
index 6d723ed046..f3785b1a5b 100644
--- a/sysdeps/ieee754/soft-fp/s_ffmal.c
+++ b/sysdeps/ieee754/soft-fp/s_ffmal.c
@@ -33,7 +33,7 @@
    it may be where R is defined using a macro or it may be where the
    macro is defined.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (4.9, "-Wmaybe-uninitialized");
 
 #include <soft-fp.h>
 #include <single.h>
diff --git a/sysdeps/ieee754/soft-fp/s_fma.c b/sysdeps/ieee754/soft-fp/s_fma.c
index 67e31e6209..ffcbaf48b3 100644
--- a/sysdeps/ieee754/soft-fp/s_fma.c
+++ b/sysdeps/ieee754/soft-fp/s_fma.c
@@ -42,7 +42,7 @@
    it may be where R is defined using a macro or it may be where the
    macro is defined.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (4.9, "-Wmaybe-uninitialized");
 
 #include "soft-fp.h"
 #include "double.h"
diff --git a/sysdeps/ieee754/soft-fp/s_fmaf.c b/sysdeps/ieee754/soft-fp/s_fmaf.c
index a57e949fa5..95e5a34e1b 100644
--- a/sysdeps/ieee754/soft-fp/s_fmaf.c
+++ b/sysdeps/ieee754/soft-fp/s_fmaf.c
@@ -37,7 +37,7 @@
    it may be where R is defined using a macro or it may be where the
    macro is defined.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (4.9, "-Wmaybe-uninitialized");
 
 #include "soft-fp.h"
 #include "single.h"
diff --git a/sysdeps/ieee754/soft-fp/s_fmal.c b/sysdeps/ieee754/soft-fp/s_fmal.c
index 1973a21f19..22ffc7cebd 100644
--- a/sysdeps/ieee754/soft-fp/s_fmal.c
+++ b/sysdeps/ieee754/soft-fp/s_fmal.c
@@ -40,7 +40,7 @@
    it may be where R is defined using a macro or it may be where the
    macro is defined.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (4.9, "-Wmaybe-uninitialized");
 
 #include "soft-fp.h"
 #include "quad.h"
diff --git a/sysdeps/unix/sysv/linux/convert_scm_timestamps.c b/sysdeps/unix/sysv/linux/convert_scm_timestamps.c
index 3720bd9591..399fe597e3 100644
--- a/sysdeps/unix/sysv/linux/convert_scm_timestamps.c
+++ b/sysdeps/unix/sysv/linux/convert_scm_timestamps.c
@@ -51,7 +51,7 @@ __convert_scm_timestamps (struct msghdr *msg, socklen_t msgsize)
      (done by either COMPAT_SO_TIMESTAMP_OLD or COMPAT_SO_TIMESTAMPNS_OLD)
      which will fallthrough to 'common' label.  */
   DIAG_PUSH_NEEDS_COMMENT;
-  DIAG_IGNORE_NEEDS_COMMENT (6, "-Wmaybe-uninitialized");
+  DIAG_IGNORE_NEEDS_COMMENT_GCC (6, "-Wmaybe-uninitialized");
   int64_t tvts[2];
   DIAG_POP_NEEDS_COMMENT;
   int32_t tmp[2];

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [glibc/azanella/clang] Suppress -Wmaybe-uninitialized only for gcc
@ 2023-12-21 18:51 Adhemerval Zanella
  0 siblings, 0 replies; 7+ messages in thread
From: Adhemerval Zanella @ 2023-12-21 18:51 UTC (permalink / raw)
  To: glibc-cvs

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=d978132cdb9d54f3febdd2c6ad03c88fcf956640

commit d978132cdb9d54f3febdd2c6ad03c88fcf956640
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Wed Mar 9 15:51:50 2022 -0300

    Suppress -Wmaybe-uninitialized only for gcc
    
    The warning is not supported by clang.

Diff:
---
 hurd/hurdsig.c                                   |  2 +-
 inet/net-internal.h                              |  2 +-
 malloc/malloc-check.c                            |  2 +-
 nis/nis_table.c                                  |  2 +-
 nptl/tst-thread-setspecific.c                    |  2 +-
 resolv/res_send.c                                | 10 +++++-----
 stdio-common/vfscanf-internal.c                  |  2 +-
 stdlib/bug-getcontext.c                          |  2 +-
 string/wordcopy.c                                |  6 +++---
 sunrpc/clnt_udp.c                                |  2 +-
 sysdeps/ieee754/dbl-64/e_lgamma_r.c              |  2 +-
 sysdeps/ieee754/flt-32/e_lgammaf_r.c             |  2 +-
 sysdeps/ieee754/ldbl-128/k_tanl.c                |  2 +-
 sysdeps/ieee754/ldbl-128ibm/k_tanl.c             |  2 +-
 sysdeps/ieee754/ldbl-96/e_lgammal_r.c            |  2 +-
 sysdeps/ieee754/ldbl-96/k_tanl.c                 |  2 +-
 sysdeps/ieee754/soft-fp/s_ddivl.c                |  2 +-
 sysdeps/ieee754/soft-fp/s_dfmal.c                |  2 +-
 sysdeps/ieee754/soft-fp/s_dsqrtl.c               |  2 +-
 sysdeps/ieee754/soft-fp/s_fdiv.c                 |  2 +-
 sysdeps/ieee754/soft-fp/s_fdivl.c                |  2 +-
 sysdeps/ieee754/soft-fp/s_ffma.c                 |  2 +-
 sysdeps/ieee754/soft-fp/s_ffmal.c                |  2 +-
 sysdeps/ieee754/soft-fp/s_fma.c                  |  2 +-
 sysdeps/ieee754/soft-fp/s_fmaf.c                 |  2 +-
 sysdeps/ieee754/soft-fp/s_fmal.c                 |  2 +-
 sysdeps/unix/sysv/linux/convert_scm_timestamps.c |  2 +-
 27 files changed, 33 insertions(+), 33 deletions(-)

diff --git a/hurd/hurdsig.c b/hurd/hurdsig.c
index ce56d28520..d8cc6ac8ff 100644
--- a/hurd/hurdsig.c
+++ b/hurd/hurdsig.c
@@ -376,7 +376,7 @@ interrupted_reply_port_location (thread_t thread,
   /* GCC 6 and before seem to be confused by the setjmp call inside
      _hurdsig_catch_memory_fault and think that we may be returning a second
      time to here with portloc uninitialized (but we never do). */
-  DIAG_IGNORE_NEEDS_COMMENT (6, "-Wmaybe-uninitialized");
+  DIAG_IGNORE_NEEDS_COMMENT_GCC (6, "-Wmaybe-uninitialized");
   /* Fault now if this pointer is bogus.  */
   *(volatile mach_port_t *) portloc = *portloc;
   DIAG_POP_NEEDS_COMMENT;
diff --git a/inet/net-internal.h b/inet/net-internal.h
index a5cf108bac..41e350b9aa 100644
--- a/inet/net-internal.h
+++ b/inet/net-internal.h
@@ -106,7 +106,7 @@ __deadline_is_infinite (struct deadline deadline)
  *    https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91691
  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (9, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (9, "-Wmaybe-uninitialized");
 
 /* Return true if the current time is at the deadline or past it.  */
 static inline bool
diff --git a/malloc/malloc-check.c b/malloc/malloc-check.c
index 5732d81bf1..72cf3ee0f7 100644
--- a/malloc/malloc-check.c
+++ b/malloc/malloc-check.c
@@ -319,7 +319,7 @@ realloc_check (void *oldmem, size_t bytes)
 #if __GNUC_PREREQ (7, 0)
   /* GCC 7 warns about magic_p may be used uninitialized.  But we never
      reach here if magic_p is uninitialized.  */
-  DIAG_IGNORE_NEEDS_COMMENT (7, "-Wmaybe-uninitialized");
+  DIAG_IGNORE_NEEDS_COMMENT_GCC (7, "-Wmaybe-uninitialized");
 #endif
   /* mem2chunk_check changed the magic byte in the old chunk.
      If newmem is NULL, then the old chunk will still be used though,
diff --git a/nis/nis_table.c b/nis/nis_table.c
index 16cc4befb8..04e7f2ef99 100644
--- a/nis/nis_table.c
+++ b/nis/nis_table.c
@@ -180,7 +180,7 @@ __follow_path (char **tablepath, char **tableptr, struct ib_request *ibreq,
   /* Since tableptr is only set here, and it's set when tablepath is NULL,
      which it is initially defined as, we know it will always be set here.  */
   DIAG_PUSH_NEEDS_COMMENT;
-  DIAG_IGNORE_NEEDS_COMMENT (4.7, "-Wmaybe-uninitialized");
+  DIAG_IGNORE_NEEDS_COMMENT_GCC (4.7, "-Wmaybe-uninitialized");
 
   if (*tableptr == NULL)
     return NIS_NOTFOUND;
diff --git a/nptl/tst-thread-setspecific.c b/nptl/tst-thread-setspecific.c
index c0e93381af..0b19cef06f 100644
--- a/nptl/tst-thread-setspecific.c
+++ b/nptl/tst-thread-setspecific.c
@@ -25,7 +25,7 @@
    See BZ #27714.  */
 
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (6, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (6, "-Wmaybe-uninitialized");
 DIAG_IGNORE_NEEDS_COMMENT (6, "-Wuninitialized");
 
 static int
diff --git a/resolv/res_send.c b/resolv/res_send.c
index d098eba470..4053151a32 100644
--- a/resolv/res_send.c
+++ b/resolv/res_send.c
@@ -266,7 +266,7 @@ __res_context_send (struct resolv_context *ctx,
 	   Here the variable n is set to the return value of send_vc.
 	   See below.  */
 	DIAG_PUSH_NEEDS_COMMENT;
-	DIAG_IGNORE_NEEDS_COMMENT (9, "-Wmaybe-uninitialized");
+	DIAG_IGNORE_NEEDS_COMMENT_GCC (9, "-Wmaybe-uninitialized");
 	int n;
 	DIAG_POP_NEEDS_COMMENT;
 
@@ -364,7 +364,7 @@ __res_context_send (struct resolv_context *ctx,
 				return (-1);
 			/* See comment at the declaration of n.  */
 			DIAG_PUSH_NEEDS_COMMENT;
-			DIAG_IGNORE_NEEDS_COMMENT (9, "-Wmaybe-uninitialized");
+			DIAG_IGNORE_NEEDS_COMMENT_GCC (9, "-Wmaybe-uninitialized");
 			if (n == 0 && (buf2 == NULL || *resplen2 == 0))
 				goto next_ns;
 			DIAG_POP_NEEDS_COMMENT;
@@ -388,7 +388,7 @@ __res_context_send (struct resolv_context *ctx,
 
 		/* See comment at the declaration of n.  Note: resplen = n;  */
 		DIAG_PUSH_NEEDS_COMMENT;
-		DIAG_IGNORE_NEEDS_COMMENT (9, "-Wmaybe-uninitialized");
+		DIAG_IGNORE_NEEDS_COMMENT_GCC (9, "-Wmaybe-uninitialized");
 		/* Mask the AD bit in both responses unless it is
 		   marked trusted.  */
 		if (resplen > HFIXEDSZ)
@@ -580,7 +580,7 @@ send_vc(res_state statp,
 	   a false-positive.
 	 */
 	DIAG_PUSH_NEEDS_COMMENT;
-	DIAG_IGNORE_NEEDS_COMMENT (5, "-Wmaybe-uninitialized");
+	DIAG_IGNORE_NEEDS_COMMENT_GCC (5, "-Wmaybe-uninitialized");
 	int resplen;
 	DIAG_POP_NEEDS_COMMENT;
 	struct iovec iov[4];
@@ -852,7 +852,7 @@ reopen (res_state statp, int *terrno, int ns)
 		   the function return -1 before control flow reaches
 		   the call to connect with slen.  */
 		DIAG_PUSH_NEEDS_COMMENT;
-		DIAG_IGNORE_Os_NEEDS_COMMENT (5, "-Wmaybe-uninitialized");
+		DIAG_IGNORE_NEEDS_COMMENT_GCC (5, "-Wmaybe-uninitialized");
 		if (__connect (EXT (statp).nssocks[ns], nsap, slen) < 0) {
 		DIAG_POP_NEEDS_COMMENT;
 			__res_iclose(statp, false);
diff --git a/stdio-common/vfscanf-internal.c b/stdio-common/vfscanf-internal.c
index cacb9668ba..ab42fb1bcf 100644
--- a/stdio-common/vfscanf-internal.c
+++ b/stdio-common/vfscanf-internal.c
@@ -1608,7 +1608,7 @@ __vfscanf_internal (FILE *s, const char *format, va_list argptr,
 			 above, but the test for "map != NULL" is done
 			 inside the loop here and outside the loop there.  */
 		      DIAG_PUSH_NEEDS_COMMENT;
-		      DIAG_IGNORE_NEEDS_COMMENT (4.7, "-Wmaybe-uninitialized");
+		      DIAG_IGNORE_NEEDS_COMMENT_GCC (4.7, "-Wmaybe-uninitialized");
 
 		      if (__glibc_unlikely (map != NULL))
 			wcdigits[n] = digits_extended[n];
diff --git a/stdlib/bug-getcontext.c b/stdlib/bug-getcontext.c
index 55c681c480..9e5e6c7e1c 100644
--- a/stdlib/bug-getcontext.c
+++ b/stdlib/bug-getcontext.c
@@ -56,7 +56,7 @@ do_test (void)
      in local variables being clobbered on the second return from
      getcontext), in fact an uninitialized use is not possible.  */
   DIAG_PUSH_NEEDS_COMMENT;
-  DIAG_IGNORE_NEEDS_COMMENT (5, "-Wmaybe-uninitialized");
+  DIAG_IGNORE_NEEDS_COMMENT_GCC (5, "-Wmaybe-uninitialized");
   int mask = fegetexcept ();
   if (mask != except_mask)
     {
diff --git a/string/wordcopy.c b/string/wordcopy.c
index a8a40c9f01..fe8220c476 100644
--- a/string/wordcopy.c
+++ b/string/wordcopy.c
@@ -29,7 +29,7 @@
    Since the usage is within the MERGE macro we disable the
    warning in the definition, but only in this file.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (6, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (6, "-Wmaybe-uninitialized");
 #include <memcopy.h>
 DIAG_POP_NEEDS_COMMENT;
 
@@ -112,7 +112,7 @@ WORDCOPY_FWD_ALIGNED (long int dstp, long int srcp, size_t len)
 	 case. The switch case always sets 'a1' and all previous loop
 	 iterations will also have set 'a1' before the use.  */
       DIAG_PUSH_NEEDS_COMMENT;
-      DIAG_IGNORE_NEEDS_COMMENT (6, "-Wmaybe-uninitialized");
+      DIAG_IGNORE_NEEDS_COMMENT_GCC (6, "-Wmaybe-uninitialized");
       ((op_t *) dstp)[0] = a1;
       DIAG_POP_NEEDS_COMMENT;
     do7:
@@ -313,7 +313,7 @@ WORDCOPY_BWD_ALIGNED (long int dstp, long int srcp, size_t len)
       a0 = ((op_t *) srcp)[7];
       /* Check the comment on WORDCOPY_FWD_ALIGNED.  */
       DIAG_PUSH_NEEDS_COMMENT;
-      DIAG_IGNORE_NEEDS_COMMENT (6, "-Wmaybe-uninitialized");
+      DIAG_IGNORE_NEEDS_COMMENT_GCC (6, "-Wmaybe-uninitialized");
       ((op_t *) dstp)[7] = a1;
       DIAG_POP_NEEDS_COMMENT;
     do7:
diff --git a/sunrpc/clnt_udp.c b/sunrpc/clnt_udp.c
index ee79b09b40..4353e5da18 100644
--- a/sunrpc/clnt_udp.c
+++ b/sunrpc/clnt_udp.c
@@ -299,7 +299,7 @@ clntudp_call (/* client handle */
      inet/net-internal.h because in some other configurations GCC
      gives the warning in an inline function.  */
   DIAG_PUSH_NEEDS_COMMENT;
-  DIAG_IGNORE_NEEDS_COMMENT (10, "-Wmaybe-uninitialized");
+  DIAG_IGNORE_NEEDS_COMMENT_GCC (10, "-Wmaybe-uninitialized");
   struct deadline total_deadline; /* Determined once by overall timeout.  */
   DIAG_POP_NEEDS_COMMENT;
   struct deadline response_deadline; /* Determined anew for each query.  */
diff --git a/sysdeps/ieee754/dbl-64/e_lgamma_r.c b/sysdeps/ieee754/dbl-64/e_lgamma_r.c
index 72c68b6682..c298c8ca03 100644
--- a/sysdeps/ieee754/dbl-64/e_lgamma_r.c
+++ b/sysdeps/ieee754/dbl-64/e_lgamma_r.c
@@ -304,7 +304,7 @@ __ieee754_lgamma_r(double x, int *signgamp)
 	   although in the cases where it is used it has always been
 	   set.  */
 	DIAG_PUSH_NEEDS_COMMENT;
-	DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+	DIAG_IGNORE_NEEDS_COMMENT_GCC (4.9, "-Wmaybe-uninitialized");
 	if(hx<0) r = nadj - r;
 	DIAG_POP_NEEDS_COMMENT;
 	return r;
diff --git a/sysdeps/ieee754/flt-32/e_lgammaf_r.c b/sysdeps/ieee754/flt-32/e_lgammaf_r.c
index a1a3a60454..77dc54eaeb 100644
--- a/sysdeps/ieee754/flt-32/e_lgammaf_r.c
+++ b/sysdeps/ieee754/flt-32/e_lgammaf_r.c
@@ -239,7 +239,7 @@ __ieee754_lgammaf_r(float x, int *signgamp)
 	   although in the cases where it is used it has always been
 	   set.  */
 	DIAG_PUSH_NEEDS_COMMENT;
-	DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+	DIAG_IGNORE_NEEDS_COMMENT_GCC (4.9, "-Wmaybe-uninitialized");
 	if(hx<0) r = nadj - r;
 	DIAG_POP_NEEDS_COMMENT;
 	return r;
diff --git a/sysdeps/ieee754/ldbl-128/k_tanl.c b/sysdeps/ieee754/ldbl-128/k_tanl.c
index 8e93626a89..af10fbc64b 100644
--- a/sysdeps/ieee754/ldbl-128/k_tanl.c
+++ b/sysdeps/ieee754/ldbl-128/k_tanl.c
@@ -143,7 +143,7 @@ __kernel_tanl (_Float128 x, _Float128 y, int iy)
 	 uninitialized although in the cases where it is used it has
 	 always been set.  */
       DIAG_PUSH_NEEDS_COMMENT;
-      DIAG_IGNORE_NEEDS_COMMENT (5, "-Wmaybe-uninitialized");
+      DIAG_IGNORE_NEEDS_COMMENT_GCC (5, "-Wmaybe-uninitialized");
       if (sign < 0)
 	w = -w;
       DIAG_POP_NEEDS_COMMENT;
diff --git a/sysdeps/ieee754/ldbl-128ibm/k_tanl.c b/sysdeps/ieee754/ldbl-128ibm/k_tanl.c
index cd95e46089..7a42a18e55 100644
--- a/sysdeps/ieee754/ldbl-128ibm/k_tanl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/k_tanl.c
@@ -143,7 +143,7 @@ __kernel_tanl (long double x, long double y, int iy)
 	 uninitialized although in the cases where it is used it has
 	 always been set.  */
       DIAG_PUSH_NEEDS_COMMENT;
-      DIAG_IGNORE_NEEDS_COMMENT (5, "-Wmaybe-uninitialized");
+      DIAG_IGNORE_NEEDS_COMMENT_GCC (5, "-Wmaybe-uninitialized");
       if (sign < 0)
 	w = -w;
       DIAG_POP_NEEDS_COMMENT;
diff --git a/sysdeps/ieee754/ldbl-96/e_lgammal_r.c b/sysdeps/ieee754/ldbl-96/e_lgammal_r.c
index 148c21bb8d..d4fd7f5272 100644
--- a/sysdeps/ieee754/ldbl-96/e_lgammal_r.c
+++ b/sysdeps/ieee754/ldbl-96/e_lgammal_r.c
@@ -431,7 +431,7 @@ __ieee754_lgammal_r (long double x, int *signgamp)
      in warnings that it may be used uninitialized although in the
      cases where it is used it has always been set.  */
   DIAG_PUSH_NEEDS_COMMENT;
-  DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+  DIAG_IGNORE_NEEDS_COMMENT_GCC (4.9, "-Wmaybe-uninitialized");
   if (se & 0x8000)
     r = nadj - r;
   DIAG_POP_NEEDS_COMMENT;
diff --git a/sysdeps/ieee754/ldbl-96/k_tanl.c b/sysdeps/ieee754/ldbl-96/k_tanl.c
index 43a5aa4423..462795574f 100644
--- a/sysdeps/ieee754/ldbl-96/k_tanl.c
+++ b/sysdeps/ieee754/ldbl-96/k_tanl.c
@@ -140,7 +140,7 @@ __kernel_tanl (long double x, long double y, int iy)
         uninitialized although in the cases where it is used it has
         always been set.  */
       DIAG_PUSH_NEEDS_COMMENT;
-      DIAG_IGNORE_NEEDS_COMMENT (4.8, "-Wmaybe-uninitialized");
+      DIAG_IGNORE_NEEDS_COMMENT_GCC (4.8, "-Wmaybe-uninitialized");
       if (sign < 0)
 	w = -w;
       DIAG_POP_NEEDS_COMMENT;
diff --git a/sysdeps/ieee754/soft-fp/s_ddivl.c b/sysdeps/ieee754/soft-fp/s_ddivl.c
index e9f8685405..9e97d4a212 100644
--- a/sysdeps/ieee754/soft-fp/s_ddivl.c
+++ b/sysdeps/ieee754/soft-fp/s_ddivl.c
@@ -37,7 +37,7 @@
    versions of GCC, it may be where R is defined using a macro or it
    may be where the macro is defined.  This happens only with -O1.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (8, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (8, "-Wmaybe-uninitialized");
 #include <soft-fp.h>
 #include <double.h>
 #include <quad.h>
diff --git a/sysdeps/ieee754/soft-fp/s_dfmal.c b/sysdeps/ieee754/soft-fp/s_dfmal.c
index ab097393bc..e824007913 100644
--- a/sysdeps/ieee754/soft-fp/s_dfmal.c
+++ b/sysdeps/ieee754/soft-fp/s_dfmal.c
@@ -37,7 +37,7 @@
    it may be where R is defined using a macro or it may be where the
    macro is defined.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (4.9, "-Wmaybe-uninitialized");
 
 #include <soft-fp.h>
 #include <double.h>
diff --git a/sysdeps/ieee754/soft-fp/s_dsqrtl.c b/sysdeps/ieee754/soft-fp/s_dsqrtl.c
index c5c503bc4d..7d8b00c799 100644
--- a/sysdeps/ieee754/soft-fp/s_dsqrtl.c
+++ b/sysdeps/ieee754/soft-fp/s_dsqrtl.c
@@ -35,7 +35,7 @@
    does not see that they are set in all cases where they are used,
    resulting in warnings that they may be used uninitialized.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (7, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (7, "-Wmaybe-uninitialized");
 #include <soft-fp.h>
 #include <double.h>
 #include <quad.h>
diff --git a/sysdeps/ieee754/soft-fp/s_fdiv.c b/sysdeps/ieee754/soft-fp/s_fdiv.c
index df8cb67ccb..fa2e94f47e 100644
--- a/sysdeps/ieee754/soft-fp/s_fdiv.c
+++ b/sysdeps/ieee754/soft-fp/s_fdiv.c
@@ -34,7 +34,7 @@
    versions of GCC, it may be where R is defined using a macro or it
    may be where the macro is defined.  This happens only with -O1.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (8, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (8, "-Wmaybe-uninitialized");
 #include <soft-fp.h>
 #include <single.h>
 #include <double.h>
diff --git a/sysdeps/ieee754/soft-fp/s_fdivl.c b/sysdeps/ieee754/soft-fp/s_fdivl.c
index 83a6ab8435..2c1196d209 100644
--- a/sysdeps/ieee754/soft-fp/s_fdivl.c
+++ b/sysdeps/ieee754/soft-fp/s_fdivl.c
@@ -33,7 +33,7 @@
    versions of GCC, it may be where R is defined using a macro or it
    may be where the macro is defined.  This happens only with -O1.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (8, "-Wmaybe-uninitialized");
+(8);
 #include <soft-fp.h>
 #include <single.h>
 #include <quad.h>
diff --git a/sysdeps/ieee754/soft-fp/s_ffma.c b/sysdeps/ieee754/soft-fp/s_ffma.c
index 8cae5a0b81..f00e78950b 100644
--- a/sysdeps/ieee754/soft-fp/s_ffma.c
+++ b/sysdeps/ieee754/soft-fp/s_ffma.c
@@ -35,7 +35,7 @@
    it may be where R is defined using a macro or it may be where the
    macro is defined.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (4.9, "-Wmaybe-uninitialized");
 
 #include <soft-fp.h>
 #include <single.h>
diff --git a/sysdeps/ieee754/soft-fp/s_ffmal.c b/sysdeps/ieee754/soft-fp/s_ffmal.c
index 0eddf80618..6de9a3128c 100644
--- a/sysdeps/ieee754/soft-fp/s_ffmal.c
+++ b/sysdeps/ieee754/soft-fp/s_ffmal.c
@@ -33,7 +33,7 @@
    it may be where R is defined using a macro or it may be where the
    macro is defined.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (4.9, "-Wmaybe-uninitialized");
 
 #include <soft-fp.h>
 #include <single.h>
diff --git a/sysdeps/ieee754/soft-fp/s_fma.c b/sysdeps/ieee754/soft-fp/s_fma.c
index 91b29333da..2fb3dd5ade 100644
--- a/sysdeps/ieee754/soft-fp/s_fma.c
+++ b/sysdeps/ieee754/soft-fp/s_fma.c
@@ -42,7 +42,7 @@
    it may be where R is defined using a macro or it may be where the
    macro is defined.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (4.9, "-Wmaybe-uninitialized");
 
 #include "soft-fp.h"
 #include "double.h"
diff --git a/sysdeps/ieee754/soft-fp/s_fmaf.c b/sysdeps/ieee754/soft-fp/s_fmaf.c
index f1c58b6bed..52c2f25e47 100644
--- a/sysdeps/ieee754/soft-fp/s_fmaf.c
+++ b/sysdeps/ieee754/soft-fp/s_fmaf.c
@@ -37,7 +37,7 @@
    it may be where R is defined using a macro or it may be where the
    macro is defined.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (4.9, "-Wmaybe-uninitialized");
 
 #include "soft-fp.h"
 #include "single.h"
diff --git a/sysdeps/ieee754/soft-fp/s_fmal.c b/sysdeps/ieee754/soft-fp/s_fmal.c
index b5a8a06a53..3b8b31e736 100644
--- a/sysdeps/ieee754/soft-fp/s_fmal.c
+++ b/sysdeps/ieee754/soft-fp/s_fmal.c
@@ -40,7 +40,7 @@
    it may be where R is defined using a macro or it may be where the
    macro is defined.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (4.9, "-Wmaybe-uninitialized");
 
 #include "soft-fp.h"
 #include "quad.h"
diff --git a/sysdeps/unix/sysv/linux/convert_scm_timestamps.c b/sysdeps/unix/sysv/linux/convert_scm_timestamps.c
index 06c8adeee1..fca3f7f766 100644
--- a/sysdeps/unix/sysv/linux/convert_scm_timestamps.c
+++ b/sysdeps/unix/sysv/linux/convert_scm_timestamps.c
@@ -51,7 +51,7 @@ __convert_scm_timestamps (struct msghdr *msg, socklen_t msgsize)
      (done by either COMPAT_SO_TIMESTAMP_OLD or COMPAT_SO_TIMESTAMPNS_OLD)
      which will fallthrough to 'common' label.  */
   DIAG_PUSH_NEEDS_COMMENT;
-  DIAG_IGNORE_NEEDS_COMMENT (6, "-Wmaybe-uninitialized");
+  DIAG_IGNORE_NEEDS_COMMENT_GCC (6, "-Wmaybe-uninitialized");
   int64_t tvts[2];
   DIAG_POP_NEEDS_COMMENT;
   int32_t tmp[2];

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [glibc/azanella/clang] Suppress -Wmaybe-uninitialized only for gcc
@ 2023-09-28 17:49 Adhemerval Zanella
  0 siblings, 0 replies; 7+ messages in thread
From: Adhemerval Zanella @ 2023-09-28 17:49 UTC (permalink / raw)
  To: glibc-cvs

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=eefa33554e559d1ec3687e31463d4cba6dd45277

commit eefa33554e559d1ec3687e31463d4cba6dd45277
Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Date:   Wed Mar 9 15:51:50 2022 -0300

    Suppress -Wmaybe-uninitialized only for gcc
    
    The warning is not supported by clang.

Diff:
---
 hurd/hurdsig.c                                   |  2 +-
 inet/net-internal.h                              |  2 +-
 malloc/malloc-check.c                            |  2 +-
 nis/nis_table.c                                  |  2 +-
 nptl/tst-thread-setspecific.c                    |  2 +-
 resolv/res_send.c                                | 10 +++++-----
 stdio-common/vfscanf-internal.c                  |  2 +-
 stdlib/bug-getcontext.c                          |  2 +-
 string/wordcopy.c                                |  6 +++---
 sunrpc/clnt_udp.c                                |  2 +-
 sysdeps/ieee754/dbl-64/e_lgamma_r.c              |  2 +-
 sysdeps/ieee754/dbl-64/k_rem_pio2.c              |  2 +-
 sysdeps/ieee754/flt-32/e_lgammaf_r.c             |  2 +-
 sysdeps/ieee754/ldbl-128/k_tanl.c                |  2 +-
 sysdeps/ieee754/ldbl-128ibm/k_tanl.c             |  2 +-
 sysdeps/ieee754/ldbl-96/e_lgammal_r.c            |  2 +-
 sysdeps/ieee754/ldbl-96/k_tanl.c                 |  2 +-
 sysdeps/ieee754/soft-fp/s_ddivl.c                |  2 +-
 sysdeps/ieee754/soft-fp/s_dfmal.c                |  2 +-
 sysdeps/ieee754/soft-fp/s_dsqrtl.c               |  2 +-
 sysdeps/ieee754/soft-fp/s_fdiv.c                 |  2 +-
 sysdeps/ieee754/soft-fp/s_fdivl.c                |  2 +-
 sysdeps/ieee754/soft-fp/s_ffma.c                 |  2 +-
 sysdeps/ieee754/soft-fp/s_ffmal.c                |  2 +-
 sysdeps/ieee754/soft-fp/s_fma.c                  |  2 +-
 sysdeps/ieee754/soft-fp/s_fmaf.c                 |  2 +-
 sysdeps/ieee754/soft-fp/s_fmal.c                 |  2 +-
 sysdeps/unix/sysv/linux/convert_scm_timestamps.c |  2 +-
 28 files changed, 34 insertions(+), 34 deletions(-)

diff --git a/hurd/hurdsig.c b/hurd/hurdsig.c
index ce56d28520..d8cc6ac8ff 100644
--- a/hurd/hurdsig.c
+++ b/hurd/hurdsig.c
@@ -376,7 +376,7 @@ interrupted_reply_port_location (thread_t thread,
   /* GCC 6 and before seem to be confused by the setjmp call inside
      _hurdsig_catch_memory_fault and think that we may be returning a second
      time to here with portloc uninitialized (but we never do). */
-  DIAG_IGNORE_NEEDS_COMMENT (6, "-Wmaybe-uninitialized");
+  DIAG_IGNORE_NEEDS_COMMENT_GCC (6, "-Wmaybe-uninitialized");
   /* Fault now if this pointer is bogus.  */
   *(volatile mach_port_t *) portloc = *portloc;
   DIAG_POP_NEEDS_COMMENT;
diff --git a/inet/net-internal.h b/inet/net-internal.h
index a5cf108bac..41e350b9aa 100644
--- a/inet/net-internal.h
+++ b/inet/net-internal.h
@@ -106,7 +106,7 @@ __deadline_is_infinite (struct deadline deadline)
  *    https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91691
  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (9, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (9, "-Wmaybe-uninitialized");
 
 /* Return true if the current time is at the deadline or past it.  */
 static inline bool
diff --git a/malloc/malloc-check.c b/malloc/malloc-check.c
index 5732d81bf1..72cf3ee0f7 100644
--- a/malloc/malloc-check.c
+++ b/malloc/malloc-check.c
@@ -319,7 +319,7 @@ realloc_check (void *oldmem, size_t bytes)
 #if __GNUC_PREREQ (7, 0)
   /* GCC 7 warns about magic_p may be used uninitialized.  But we never
      reach here if magic_p is uninitialized.  */
-  DIAG_IGNORE_NEEDS_COMMENT (7, "-Wmaybe-uninitialized");
+  DIAG_IGNORE_NEEDS_COMMENT_GCC (7, "-Wmaybe-uninitialized");
 #endif
   /* mem2chunk_check changed the magic byte in the old chunk.
      If newmem is NULL, then the old chunk will still be used though,
diff --git a/nis/nis_table.c b/nis/nis_table.c
index 16cc4befb8..04e7f2ef99 100644
--- a/nis/nis_table.c
+++ b/nis/nis_table.c
@@ -180,7 +180,7 @@ __follow_path (char **tablepath, char **tableptr, struct ib_request *ibreq,
   /* Since tableptr is only set here, and it's set when tablepath is NULL,
      which it is initially defined as, we know it will always be set here.  */
   DIAG_PUSH_NEEDS_COMMENT;
-  DIAG_IGNORE_NEEDS_COMMENT (4.7, "-Wmaybe-uninitialized");
+  DIAG_IGNORE_NEEDS_COMMENT_GCC (4.7, "-Wmaybe-uninitialized");
 
   if (*tableptr == NULL)
     return NIS_NOTFOUND;
diff --git a/nptl/tst-thread-setspecific.c b/nptl/tst-thread-setspecific.c
index c0e93381af..0b19cef06f 100644
--- a/nptl/tst-thread-setspecific.c
+++ b/nptl/tst-thread-setspecific.c
@@ -25,7 +25,7 @@
    See BZ #27714.  */
 
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (6, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (6, "-Wmaybe-uninitialized");
 DIAG_IGNORE_NEEDS_COMMENT (6, "-Wuninitialized");
 
 static int
diff --git a/resolv/res_send.c b/resolv/res_send.c
index d098eba470..4053151a32 100644
--- a/resolv/res_send.c
+++ b/resolv/res_send.c
@@ -266,7 +266,7 @@ __res_context_send (struct resolv_context *ctx,
 	   Here the variable n is set to the return value of send_vc.
 	   See below.  */
 	DIAG_PUSH_NEEDS_COMMENT;
-	DIAG_IGNORE_NEEDS_COMMENT (9, "-Wmaybe-uninitialized");
+	DIAG_IGNORE_NEEDS_COMMENT_GCC (9, "-Wmaybe-uninitialized");
 	int n;
 	DIAG_POP_NEEDS_COMMENT;
 
@@ -364,7 +364,7 @@ __res_context_send (struct resolv_context *ctx,
 				return (-1);
 			/* See comment at the declaration of n.  */
 			DIAG_PUSH_NEEDS_COMMENT;
-			DIAG_IGNORE_NEEDS_COMMENT (9, "-Wmaybe-uninitialized");
+			DIAG_IGNORE_NEEDS_COMMENT_GCC (9, "-Wmaybe-uninitialized");
 			if (n == 0 && (buf2 == NULL || *resplen2 == 0))
 				goto next_ns;
 			DIAG_POP_NEEDS_COMMENT;
@@ -388,7 +388,7 @@ __res_context_send (struct resolv_context *ctx,
 
 		/* See comment at the declaration of n.  Note: resplen = n;  */
 		DIAG_PUSH_NEEDS_COMMENT;
-		DIAG_IGNORE_NEEDS_COMMENT (9, "-Wmaybe-uninitialized");
+		DIAG_IGNORE_NEEDS_COMMENT_GCC (9, "-Wmaybe-uninitialized");
 		/* Mask the AD bit in both responses unless it is
 		   marked trusted.  */
 		if (resplen > HFIXEDSZ)
@@ -580,7 +580,7 @@ send_vc(res_state statp,
 	   a false-positive.
 	 */
 	DIAG_PUSH_NEEDS_COMMENT;
-	DIAG_IGNORE_NEEDS_COMMENT (5, "-Wmaybe-uninitialized");
+	DIAG_IGNORE_NEEDS_COMMENT_GCC (5, "-Wmaybe-uninitialized");
 	int resplen;
 	DIAG_POP_NEEDS_COMMENT;
 	struct iovec iov[4];
@@ -852,7 +852,7 @@ reopen (res_state statp, int *terrno, int ns)
 		   the function return -1 before control flow reaches
 		   the call to connect with slen.  */
 		DIAG_PUSH_NEEDS_COMMENT;
-		DIAG_IGNORE_Os_NEEDS_COMMENT (5, "-Wmaybe-uninitialized");
+		DIAG_IGNORE_NEEDS_COMMENT_GCC (5, "-Wmaybe-uninitialized");
 		if (__connect (EXT (statp).nssocks[ns], nsap, slen) < 0) {
 		DIAG_POP_NEEDS_COMMENT;
 			__res_iclose(statp, false);
diff --git a/stdio-common/vfscanf-internal.c b/stdio-common/vfscanf-internal.c
index 9b1197d751..eee9835a97 100644
--- a/stdio-common/vfscanf-internal.c
+++ b/stdio-common/vfscanf-internal.c
@@ -1560,7 +1560,7 @@ __vfscanf_internal (FILE *s, const char *format, va_list argptr,
 			 above, but the test for "map != NULL" is done
 			 inside the loop here and outside the loop there.  */
 		      DIAG_PUSH_NEEDS_COMMENT;
-		      DIAG_IGNORE_NEEDS_COMMENT (4.7, "-Wmaybe-uninitialized");
+		      DIAG_IGNORE_NEEDS_COMMENT_GCC (4.7, "-Wmaybe-uninitialized");
 
 		      if (__glibc_unlikely (map != NULL))
 			wcdigits[n] = digits_extended[n];
diff --git a/stdlib/bug-getcontext.c b/stdlib/bug-getcontext.c
index 55c681c480..9e5e6c7e1c 100644
--- a/stdlib/bug-getcontext.c
+++ b/stdlib/bug-getcontext.c
@@ -56,7 +56,7 @@ do_test (void)
      in local variables being clobbered on the second return from
      getcontext), in fact an uninitialized use is not possible.  */
   DIAG_PUSH_NEEDS_COMMENT;
-  DIAG_IGNORE_NEEDS_COMMENT (5, "-Wmaybe-uninitialized");
+  DIAG_IGNORE_NEEDS_COMMENT_GCC (5, "-Wmaybe-uninitialized");
   int mask = fegetexcept ();
   if (mask != except_mask)
     {
diff --git a/string/wordcopy.c b/string/wordcopy.c
index a8a40c9f01..fe8220c476 100644
--- a/string/wordcopy.c
+++ b/string/wordcopy.c
@@ -29,7 +29,7 @@
    Since the usage is within the MERGE macro we disable the
    warning in the definition, but only in this file.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (6, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (6, "-Wmaybe-uninitialized");
 #include <memcopy.h>
 DIAG_POP_NEEDS_COMMENT;
 
@@ -112,7 +112,7 @@ WORDCOPY_FWD_ALIGNED (long int dstp, long int srcp, size_t len)
 	 case. The switch case always sets 'a1' and all previous loop
 	 iterations will also have set 'a1' before the use.  */
       DIAG_PUSH_NEEDS_COMMENT;
-      DIAG_IGNORE_NEEDS_COMMENT (6, "-Wmaybe-uninitialized");
+      DIAG_IGNORE_NEEDS_COMMENT_GCC (6, "-Wmaybe-uninitialized");
       ((op_t *) dstp)[0] = a1;
       DIAG_POP_NEEDS_COMMENT;
     do7:
@@ -313,7 +313,7 @@ WORDCOPY_BWD_ALIGNED (long int dstp, long int srcp, size_t len)
       a0 = ((op_t *) srcp)[7];
       /* Check the comment on WORDCOPY_FWD_ALIGNED.  */
       DIAG_PUSH_NEEDS_COMMENT;
-      DIAG_IGNORE_NEEDS_COMMENT (6, "-Wmaybe-uninitialized");
+      DIAG_IGNORE_NEEDS_COMMENT_GCC (6, "-Wmaybe-uninitialized");
       ((op_t *) dstp)[7] = a1;
       DIAG_POP_NEEDS_COMMENT;
     do7:
diff --git a/sunrpc/clnt_udp.c b/sunrpc/clnt_udp.c
index ee79b09b40..4353e5da18 100644
--- a/sunrpc/clnt_udp.c
+++ b/sunrpc/clnt_udp.c
@@ -299,7 +299,7 @@ clntudp_call (/* client handle */
      inet/net-internal.h because in some other configurations GCC
      gives the warning in an inline function.  */
   DIAG_PUSH_NEEDS_COMMENT;
-  DIAG_IGNORE_NEEDS_COMMENT (10, "-Wmaybe-uninitialized");
+  DIAG_IGNORE_NEEDS_COMMENT_GCC (10, "-Wmaybe-uninitialized");
   struct deadline total_deadline; /* Determined once by overall timeout.  */
   DIAG_POP_NEEDS_COMMENT;
   struct deadline response_deadline; /* Determined anew for each query.  */
diff --git a/sysdeps/ieee754/dbl-64/e_lgamma_r.c b/sysdeps/ieee754/dbl-64/e_lgamma_r.c
index 72c68b6682..c298c8ca03 100644
--- a/sysdeps/ieee754/dbl-64/e_lgamma_r.c
+++ b/sysdeps/ieee754/dbl-64/e_lgamma_r.c
@@ -304,7 +304,7 @@ __ieee754_lgamma_r(double x, int *signgamp)
 	   although in the cases where it is used it has always been
 	   set.  */
 	DIAG_PUSH_NEEDS_COMMENT;
-	DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+	DIAG_IGNORE_NEEDS_COMMENT_GCC (4.9, "-Wmaybe-uninitialized");
 	if(hx<0) r = nadj - r;
 	DIAG_POP_NEEDS_COMMENT;
 	return r;
diff --git a/sysdeps/ieee754/dbl-64/k_rem_pio2.c b/sysdeps/ieee754/dbl-64/k_rem_pio2.c
index 6e2ef5d07b..78d1ea09ad 100644
--- a/sysdeps/ieee754/dbl-64/k_rem_pio2.c
+++ b/sysdeps/ieee754/dbl-64/k_rem_pio2.c
@@ -337,7 +337,7 @@ recompute:
 	 to full precision (this function is not called for zero
 	 arguments).  */
       DIAG_PUSH_NEEDS_COMMENT;
-      DIAG_IGNORE_NEEDS_COMMENT (9, "-Wmaybe-uninitialized");
+      DIAG_IGNORE_NEEDS_COMMENT_GCC (9, "-Wmaybe-uninitialized");
       fv = math_narrow_eval (fq[0] - fv);
       DIAG_POP_NEEDS_COMMENT;
       for (i = 1; i <= jz; i++)
diff --git a/sysdeps/ieee754/flt-32/e_lgammaf_r.c b/sysdeps/ieee754/flt-32/e_lgammaf_r.c
index a1a3a60454..77dc54eaeb 100644
--- a/sysdeps/ieee754/flt-32/e_lgammaf_r.c
+++ b/sysdeps/ieee754/flt-32/e_lgammaf_r.c
@@ -239,7 +239,7 @@ __ieee754_lgammaf_r(float x, int *signgamp)
 	   although in the cases where it is used it has always been
 	   set.  */
 	DIAG_PUSH_NEEDS_COMMENT;
-	DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+	DIAG_IGNORE_NEEDS_COMMENT_GCC (4.9, "-Wmaybe-uninitialized");
 	if(hx<0) r = nadj - r;
 	DIAG_POP_NEEDS_COMMENT;
 	return r;
diff --git a/sysdeps/ieee754/ldbl-128/k_tanl.c b/sysdeps/ieee754/ldbl-128/k_tanl.c
index 8e93626a89..af10fbc64b 100644
--- a/sysdeps/ieee754/ldbl-128/k_tanl.c
+++ b/sysdeps/ieee754/ldbl-128/k_tanl.c
@@ -143,7 +143,7 @@ __kernel_tanl (_Float128 x, _Float128 y, int iy)
 	 uninitialized although in the cases where it is used it has
 	 always been set.  */
       DIAG_PUSH_NEEDS_COMMENT;
-      DIAG_IGNORE_NEEDS_COMMENT (5, "-Wmaybe-uninitialized");
+      DIAG_IGNORE_NEEDS_COMMENT_GCC (5, "-Wmaybe-uninitialized");
       if (sign < 0)
 	w = -w;
       DIAG_POP_NEEDS_COMMENT;
diff --git a/sysdeps/ieee754/ldbl-128ibm/k_tanl.c b/sysdeps/ieee754/ldbl-128ibm/k_tanl.c
index cd95e46089..7a42a18e55 100644
--- a/sysdeps/ieee754/ldbl-128ibm/k_tanl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/k_tanl.c
@@ -143,7 +143,7 @@ __kernel_tanl (long double x, long double y, int iy)
 	 uninitialized although in the cases where it is used it has
 	 always been set.  */
       DIAG_PUSH_NEEDS_COMMENT;
-      DIAG_IGNORE_NEEDS_COMMENT (5, "-Wmaybe-uninitialized");
+      DIAG_IGNORE_NEEDS_COMMENT_GCC (5, "-Wmaybe-uninitialized");
       if (sign < 0)
 	w = -w;
       DIAG_POP_NEEDS_COMMENT;
diff --git a/sysdeps/ieee754/ldbl-96/e_lgammal_r.c b/sysdeps/ieee754/ldbl-96/e_lgammal_r.c
index 148c21bb8d..d4fd7f5272 100644
--- a/sysdeps/ieee754/ldbl-96/e_lgammal_r.c
+++ b/sysdeps/ieee754/ldbl-96/e_lgammal_r.c
@@ -431,7 +431,7 @@ __ieee754_lgammal_r (long double x, int *signgamp)
      in warnings that it may be used uninitialized although in the
      cases where it is used it has always been set.  */
   DIAG_PUSH_NEEDS_COMMENT;
-  DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+  DIAG_IGNORE_NEEDS_COMMENT_GCC (4.9, "-Wmaybe-uninitialized");
   if (se & 0x8000)
     r = nadj - r;
   DIAG_POP_NEEDS_COMMENT;
diff --git a/sysdeps/ieee754/ldbl-96/k_tanl.c b/sysdeps/ieee754/ldbl-96/k_tanl.c
index 43a5aa4423..462795574f 100644
--- a/sysdeps/ieee754/ldbl-96/k_tanl.c
+++ b/sysdeps/ieee754/ldbl-96/k_tanl.c
@@ -140,7 +140,7 @@ __kernel_tanl (long double x, long double y, int iy)
         uninitialized although in the cases where it is used it has
         always been set.  */
       DIAG_PUSH_NEEDS_COMMENT;
-      DIAG_IGNORE_NEEDS_COMMENT (4.8, "-Wmaybe-uninitialized");
+      DIAG_IGNORE_NEEDS_COMMENT_GCC (4.8, "-Wmaybe-uninitialized");
       if (sign < 0)
 	w = -w;
       DIAG_POP_NEEDS_COMMENT;
diff --git a/sysdeps/ieee754/soft-fp/s_ddivl.c b/sysdeps/ieee754/soft-fp/s_ddivl.c
index e9f8685405..9e97d4a212 100644
--- a/sysdeps/ieee754/soft-fp/s_ddivl.c
+++ b/sysdeps/ieee754/soft-fp/s_ddivl.c
@@ -37,7 +37,7 @@
    versions of GCC, it may be where R is defined using a macro or it
    may be where the macro is defined.  This happens only with -O1.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (8, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (8, "-Wmaybe-uninitialized");
 #include <soft-fp.h>
 #include <double.h>
 #include <quad.h>
diff --git a/sysdeps/ieee754/soft-fp/s_dfmal.c b/sysdeps/ieee754/soft-fp/s_dfmal.c
index ab097393bc..e824007913 100644
--- a/sysdeps/ieee754/soft-fp/s_dfmal.c
+++ b/sysdeps/ieee754/soft-fp/s_dfmal.c
@@ -37,7 +37,7 @@
    it may be where R is defined using a macro or it may be where the
    macro is defined.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (4.9, "-Wmaybe-uninitialized");
 
 #include <soft-fp.h>
 #include <double.h>
diff --git a/sysdeps/ieee754/soft-fp/s_dsqrtl.c b/sysdeps/ieee754/soft-fp/s_dsqrtl.c
index c5c503bc4d..7d8b00c799 100644
--- a/sysdeps/ieee754/soft-fp/s_dsqrtl.c
+++ b/sysdeps/ieee754/soft-fp/s_dsqrtl.c
@@ -35,7 +35,7 @@
    does not see that they are set in all cases where they are used,
    resulting in warnings that they may be used uninitialized.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (7, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (7, "-Wmaybe-uninitialized");
 #include <soft-fp.h>
 #include <double.h>
 #include <quad.h>
diff --git a/sysdeps/ieee754/soft-fp/s_fdiv.c b/sysdeps/ieee754/soft-fp/s_fdiv.c
index df8cb67ccb..fa2e94f47e 100644
--- a/sysdeps/ieee754/soft-fp/s_fdiv.c
+++ b/sysdeps/ieee754/soft-fp/s_fdiv.c
@@ -34,7 +34,7 @@
    versions of GCC, it may be where R is defined using a macro or it
    may be where the macro is defined.  This happens only with -O1.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (8, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (8, "-Wmaybe-uninitialized");
 #include <soft-fp.h>
 #include <single.h>
 #include <double.h>
diff --git a/sysdeps/ieee754/soft-fp/s_fdivl.c b/sysdeps/ieee754/soft-fp/s_fdivl.c
index 83a6ab8435..2c1196d209 100644
--- a/sysdeps/ieee754/soft-fp/s_fdivl.c
+++ b/sysdeps/ieee754/soft-fp/s_fdivl.c
@@ -33,7 +33,7 @@
    versions of GCC, it may be where R is defined using a macro or it
    may be where the macro is defined.  This happens only with -O1.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (8, "-Wmaybe-uninitialized");
+(8);
 #include <soft-fp.h>
 #include <single.h>
 #include <quad.h>
diff --git a/sysdeps/ieee754/soft-fp/s_ffma.c b/sysdeps/ieee754/soft-fp/s_ffma.c
index 8cae5a0b81..f00e78950b 100644
--- a/sysdeps/ieee754/soft-fp/s_ffma.c
+++ b/sysdeps/ieee754/soft-fp/s_ffma.c
@@ -35,7 +35,7 @@
    it may be where R is defined using a macro or it may be where the
    macro is defined.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (4.9, "-Wmaybe-uninitialized");
 
 #include <soft-fp.h>
 #include <single.h>
diff --git a/sysdeps/ieee754/soft-fp/s_ffmal.c b/sysdeps/ieee754/soft-fp/s_ffmal.c
index 0eddf80618..6de9a3128c 100644
--- a/sysdeps/ieee754/soft-fp/s_ffmal.c
+++ b/sysdeps/ieee754/soft-fp/s_ffmal.c
@@ -33,7 +33,7 @@
    it may be where R is defined using a macro or it may be where the
    macro is defined.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (4.9, "-Wmaybe-uninitialized");
 
 #include <soft-fp.h>
 #include <single.h>
diff --git a/sysdeps/ieee754/soft-fp/s_fma.c b/sysdeps/ieee754/soft-fp/s_fma.c
index 91b29333da..2fb3dd5ade 100644
--- a/sysdeps/ieee754/soft-fp/s_fma.c
+++ b/sysdeps/ieee754/soft-fp/s_fma.c
@@ -42,7 +42,7 @@
    it may be where R is defined using a macro or it may be where the
    macro is defined.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (4.9, "-Wmaybe-uninitialized");
 
 #include "soft-fp.h"
 #include "double.h"
diff --git a/sysdeps/ieee754/soft-fp/s_fmaf.c b/sysdeps/ieee754/soft-fp/s_fmaf.c
index f1c58b6bed..52c2f25e47 100644
--- a/sysdeps/ieee754/soft-fp/s_fmaf.c
+++ b/sysdeps/ieee754/soft-fp/s_fmaf.c
@@ -37,7 +37,7 @@
    it may be where R is defined using a macro or it may be where the
    macro is defined.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (4.9, "-Wmaybe-uninitialized");
 
 #include "soft-fp.h"
 #include "single.h"
diff --git a/sysdeps/ieee754/soft-fp/s_fmal.c b/sysdeps/ieee754/soft-fp/s_fmal.c
index b5a8a06a53..3b8b31e736 100644
--- a/sysdeps/ieee754/soft-fp/s_fmal.c
+++ b/sysdeps/ieee754/soft-fp/s_fmal.c
@@ -40,7 +40,7 @@
    it may be where R is defined using a macro or it may be where the
    macro is defined.  */
 DIAG_PUSH_NEEDS_COMMENT;
-DIAG_IGNORE_NEEDS_COMMENT (4.9, "-Wmaybe-uninitialized");
+DIAG_IGNORE_NEEDS_COMMENT_GCC (4.9, "-Wmaybe-uninitialized");
 
 #include "soft-fp.h"
 #include "quad.h"
diff --git a/sysdeps/unix/sysv/linux/convert_scm_timestamps.c b/sysdeps/unix/sysv/linux/convert_scm_timestamps.c
index 06c8adeee1..fca3f7f766 100644
--- a/sysdeps/unix/sysv/linux/convert_scm_timestamps.c
+++ b/sysdeps/unix/sysv/linux/convert_scm_timestamps.c
@@ -51,7 +51,7 @@ __convert_scm_timestamps (struct msghdr *msg, socklen_t msgsize)
      (done by either COMPAT_SO_TIMESTAMP_OLD or COMPAT_SO_TIMESTAMPNS_OLD)
      which will fallthrough to 'common' label.  */
   DIAG_PUSH_NEEDS_COMMENT;
-  DIAG_IGNORE_NEEDS_COMMENT (6, "-Wmaybe-uninitialized");
+  DIAG_IGNORE_NEEDS_COMMENT_GCC (6, "-Wmaybe-uninitialized");
   int64_t tvts[2];
   DIAG_POP_NEEDS_COMMENT;
   int32_t tmp[2];

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2024-04-17 20:04 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-02-09 17:28 [glibc/azanella/clang] Suppress -Wmaybe-uninitialized only for gcc Adhemerval Zanella
  -- strict thread matches above, loose matches on Subject: below --
2024-04-17 20:04 Adhemerval Zanella
2024-04-02 15:50 Adhemerval Zanella
2024-02-07 14:04 Adhemerval Zanella
2024-01-29 17:54 Adhemerval Zanella
2023-12-21 18:51 Adhemerval Zanella
2023-09-28 17:49 Adhemerval Zanella

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).