public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Eugene Rozenfeld <Eugene.Rozenfeld@microsoft.com>
To: "gcc-patches@gcc.gnu.org" <gcc-patches@gcc.gnu.org>
Subject: [PATCH] Fixes and workarounds for warnings during autoprofiledbootstrap build
Date: Wed, 10 May 2023 01:38:08 +0000	[thread overview]
Message-ID: <MN0PR21MB348450698DEB069F231AF92E91779@MN0PR21MB3484.namprd21.prod.outlook.com> (raw)

autoprofiledbootstrap build produces new warnings since inlining decisions
are different from other builds. This patch contains fixes and workarounds
for those warnings.

Tested on x86_64-pc-linux-gnu.

gcc/ChangeLog:

	* config/i386/i386-expand.cc (expand_vec_perm_interleave2): Work around
	-Wstringop-overflow false positive during autoprofiledbootstrap
	* ipa-devirt.cc (debug_tree_odr_name): Fix for -Wformat-overflow
	warning during autoprofiledbootstrap
	* lra-eliminations.cc (setup_can_eliminate): Work around
	-Wmaybe-uninitialized false positive during autoprofiledbootstrap
	* opts-common.cc (candidates_list_and_hint): Work around
	-Wstringop-overflow false positive during autoprofiledbootstrap
	* tree-ssa-ccp.cc (bit_value_unop): Work around -Wmaybe-uninitialized
	false positive during autoprofiledbootstrap
	* wide-int.h (wi::copy): Work around -Wmaybe-uninitialized false
	positive during autoprofiledbootstrap
---
 gcc/config/i386/i386-expand.cc | 11 +++++++++++
 gcc/ipa-devirt.cc              |  3 ++-
 gcc/lra-eliminations.cc        | 11 +++++++++++
 gcc/opts-common.cc             |  1 +
 gcc/tree-ssa-ccp.cc            | 11 +++++++++++
 gcc/wide-int.h                 | 11 +++++++++++
 6 files changed, 47 insertions(+), 1 deletion(-)

diff --git a/gcc/config/i386/i386-expand.cc b/gcc/config/i386/i386-expand.cc
index 634fe61ba79..be9f912775b 100644
--- a/gcc/config/i386/i386-expand.cc
+++ b/gcc/config/i386/i386-expand.cc
@@ -20419,6 +20419,13 @@ expand_vec_perm_pblendv (struct expand_vec_perm_d *d)
 
 static bool expand_vec_perm_interleave3 (struct expand_vec_perm_d *d);
 
+/* Work around -Wstringop-overflow false positive during autoprofiledbootstrap.  */
+
+# if GCC_VERSION >= 7001
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wstringop-overflow"
+#endif
+
 /* A subroutine of ix86_expand_vec_perm_const_1.  Try to simplify
    a two vector permutation into a single vector permutation by using
    an interleave operation to merge the vectors.  */
@@ -20737,6 +20744,10 @@ expand_vec_perm_interleave2 (struct expand_vec_perm_d *d)
   return true;
 }
 
+# if GCC_VERSION >= 7001
+#pragma GCC diagnostic pop
+#endif
+
 /* A subroutine of ix86_expand_vec_perm_const_1.  Try to simplify
    a single vector cross-lane permutation into vpermq followed
    by any of the single insn permutations.  */
diff --git a/gcc/ipa-devirt.cc b/gcc/ipa-devirt.cc
index 819860258d1..36ea266e834 100644
--- a/gcc/ipa-devirt.cc
+++ b/gcc/ipa-devirt.cc
@@ -4033,7 +4033,8 @@ debug_tree_odr_name (tree type, bool demangle)
       odr = cplus_demangle (odr, opts);
     }
 
-  fprintf (stderr, "%s\n", odr);
+  if (odr != NULL)
+    fprintf (stderr, "%s\n", odr);
 }
 
 /* Register ODR enum so we later stream record about its values.  */
diff --git a/gcc/lra-eliminations.cc b/gcc/lra-eliminations.cc
index 42206366669..05e2a7e0d68 100644
--- a/gcc/lra-eliminations.cc
+++ b/gcc/lra-eliminations.cc
@@ -138,6 +138,13 @@ lra_debug_elim_table (void)
   print_elim_table (stderr);
 }
 
+/* Work around -Wmaybe-uninitialized false positive during autoprofiledbootstrap.  */
+
+# if GCC_VERSION >= 4007
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
+#endif
+
 /* Setup possibility of elimination in elimination table element EP to
    VALUE.  Setup FRAME_POINTER_NEEDED if elimination from frame
    pointer to stack pointer is not possible anymore.  */
@@ -152,6 +159,10 @@ setup_can_eliminate (class lra_elim_table *ep, bool value)
     REGNO_POINTER_ALIGN (HARD_FRAME_POINTER_REGNUM) = 0;
 }
 
+# if GCC_VERSION >= 4007
+#pragma GCC diagnostic pop
+#endif
+
 /* Map: eliminable "from" register -> its current elimination,
    or NULL if none.  The elimination table may contain more than
    one elimination for the same hard register, but this map specifies
diff --git a/gcc/opts-common.cc b/gcc/opts-common.cc
index 23ddcaa3b55..0bb8e34e2b0 100644
--- a/gcc/opts-common.cc
+++ b/gcc/opts-common.cc
@@ -1388,6 +1388,7 @@ candidates_list_and_hint (const char *arg, char *&str,
       p[len] = ' ';
       p += len + 1;
     }
+  gcc_assert(p > str);
   p[-1] = '\0';
   return find_closest_string (arg, &candidates);
 }
diff --git a/gcc/tree-ssa-ccp.cc b/gcc/tree-ssa-ccp.cc
index 03a984f2adf..a54e5a90464 100644
--- a/gcc/tree-ssa-ccp.cc
+++ b/gcc/tree-ssa-ccp.cc
@@ -1976,6 +1976,13 @@ bit_value_binop (enum tree_code code, signop sgn, int width,
     }
 }
 
+/* Work around -Wmaybe-uninitialized false positive during autoprofiledbootstrap.  */
+
+# if GCC_VERSION >= 4007
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
+#endif
+
 /* Return the propagation value when applying the operation CODE to
    the value RHS yielding type TYPE.  */
 
@@ -2011,6 +2018,10 @@ bit_value_unop (enum tree_code code, tree type, tree rhs)
   return val;
 }
 
+# if GCC_VERSION >= 4007
+#pragma GCC diagnostic pop
+#endif
+
 /* Return the propagation value when applying the operation CODE to
    the values RHS1 and RHS2 yielding type TYPE.  */
 
diff --git a/gcc/wide-int.h b/gcc/wide-int.h
index 6be343c0eb5..9c50dd869b6 100644
--- a/gcc/wide-int.h
+++ b/gcc/wide-int.h
@@ -1806,6 +1806,13 @@ wi::get_binary_precision (const T1 &x, const T2 &y)
 			get_binary_result (x, y));
 }
 
+/* Work around -Wmaybe-uninitialized false positive during autoprofiledbootstrap.  */
+
+# if GCC_VERSION >= 4007
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
+#endif
+
 /* Copy the contents of Y to X, but keeping X's current precision.  */
 template <typename T1, typename T2>
 inline void
@@ -1821,6 +1828,10 @@ wi::copy (T1 &x, const T2 &y)
   x.set_len (len, y.is_sign_extended);
 }
 
+# if GCC_VERSION >= 4007
+#pragma GCC diagnostic pop
+#endif
+
 /* Return true if X fits in a HOST_WIDE_INT with no loss of precision.  */
 template <typename T>
 inline bool
-- 
2.25.1


             reply	other threads:[~2023-05-10  1:38 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-05-10  1:38 Eugene Rozenfeld [this message]
2023-05-10  6:39 ` Richard Biener
2023-05-11  2:22   ` [EXTERNAL] " Eugene Rozenfeld
2023-05-11  8:57     ` Richard Biener
2023-05-12 20:35       ` Eugene Rozenfeld
2023-05-15  7:30         ` Richard Biener
2023-05-17  7:05           ` Thomas Schwinge
2023-05-18  5:53             ` Eugene Rozenfeld
2023-05-10  8:27 ` Martin Jambor
2023-05-11  2:17   ` [EXTERNAL] " Eugene Rozenfeld

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=MN0PR21MB348450698DEB069F231AF92E91779@MN0PR21MB3484.namprd21.prod.outlook.com \
    --to=eugene.rozenfeld@microsoft.com \
    --cc=gcc-patches@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).