public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/gcc] rhel-f41-base: 11.0.0-0.15
@ 2026-06-29 12:29 Jakub Jelinek
  0 siblings, 0 replies; 2+ messages in thread
From: Jakub Jelinek @ 2026-06-29 12:29 UTC (permalink / raw)
  To: git-commits

A new commit has been pushed.

Repo   : rpms/gcc
Branch : rhel-f41-base
Commit : 983aa76b9bc21ce2eab8bdf6b28cf1aa30a3253c
Author : Jakub Jelinek <jakub@redhat.com>
Date   : 2021-01-19T14:28:03+01:00
Stats  : +373/-3 in 5 file(s)
URL    : https://src.fedoraproject.org/rpms/gcc/c/983aa76b9bc21ce2eab8bdf6b28cf1aa30a3253c?branch=rhel-f41-base

Log:
11.0.0-0.15

---
diff --git a/gcc.spec b/gcc.spec
index 28f89b2..86f8247 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -1,5 +1,5 @@
-%global DATE 20210116
-%global gitrev d42629234e8a859ed1be99bf5e06bce1a4e3fb0c
+%global DATE 20210119
+%global gitrev 4b9bffe2c626b87d403f11674a5bd63c6078c777
 %global gcc_version 11.0.0
 %global gcc_major 11
 # Note, gcc_release must be integer, if you want to add suffixes to
@@ -119,7 +119,7 @@
 Summary: Various compilers (C, C++, Objective-C, ...)
 Name: gcc
 Version: %{gcc_version}
-Release: %{gcc_release}.14%{?dist}
+Release: %{gcc_release}.15%{?dist}
 # libgcc, libgfortran, libgomp, libstdc++ and crtstuff have
 # GCC Runtime Exception.
 License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions and LGPLv2+ and BSD
@@ -272,6 +272,10 @@ Patch9: gcc11-Wno-format-security.patch
 Patch10: gcc11-rh1574936.patch
 Patch11: gcc11-d-shared-libphobos.patch
 Patch12: gcc11-pr98338-workaround.patch
+Patch13: gcc11-pr98672.patch
+Patch14: gcc11-pr98687.patch
+Patch15: gcc11-pr98721.patch
+Patch16: gcc11-pr98742.patch
 
 # On ARM EABI systems, we do want -gnueabi to be part of the
 # target triple.
@@ -783,6 +787,12 @@ to NVidia PTX capable devices if available.
 %endif
 %patch11 -p0 -b .d-shared-libphobos~
 %patch12 -p0 -b .pr98338-workaround~
+%patch13 -p0 -b .pr98672~
+%patch14 -p0 -b .pr98687~
+%patch15 -p0 -b .pr98721~
+%patch16 -p0 -b .pr98742~
+
+rm -f libgomp/testsuite/*/*task-detach*
 
 echo 'Red Hat %{version}-%{gcc_release}' > gcc/DEV-PHASE
 
@@ -3067,6 +3077,16 @@ end
 %endif
 
 %changelog
+* Tue Jan 19 2021 Jakub Jelinek <jakub@redhat.com> 11.0.0-0.15
+- update from trunk
+  - PRs debug/98708, debug/98716, ipa/98222, libstdc++/98725, target/97847,
+	testsuite/97299, testsuite/97494, testsuite/97987,
+	tree-optimization/96271
+  - fix miscompilation of portable signed multiplication overflow check
+    (#1916576, PR tree-optimization/98727)
+  - switch to DWARF 5 by default
+- fix PRs c++/98672, c++/98687, c++/98742, tree-optimization/98721
+
 * Sat Jan 16 2021 Jakub Jelinek <jakub@redhat.com> 11.0.0-0.14
 - update from trunk
   - PRs ada/98595, analyzer/98679, bootstrap/98696, c++/63707, c++/98231,

diff --git a/gcc11-pr98672.patch b/gcc11-pr98672.patch
new file mode 100644
index 0000000..b7ac680
--- /dev/null
+++ b/gcc11-pr98672.patch
@@ -0,0 +1,87 @@
+2021-01-15  Jakub Jelinek  <jakub@redhat.com>
+
+	PR c++/98672
+	* constexpr.c (potential_constant_expression_1) <case FOR_STMT>,
+	<case WHILE_STMT>: If the condition isn't constant true, check if
+	the loop body can contain a return stmt.
+
+	* g++.dg/cpp1y/constexpr-98672.C: New test.
+
+--- gcc/cp/constexpr.c.jj	2021-01-13 19:19:44.368469462 +0100
++++ gcc/cp/constexpr.c	2021-01-14 12:02:27.347042704 +0100
+@@ -8190,7 +8190,17 @@ potential_constant_expression_1 (tree t,
+ 	  /* If we couldn't evaluate the condition, it might not ever be
+ 	     true.  */
+ 	  if (!integer_onep (tmp))
+-	    return true;
++	    {
++	      /* Before returning true, check if the for body can contain
++		 a return.  */
++	      hash_set<tree> pset;
++	      check_for_return_continue_data data = { &pset, NULL_TREE };
++	      if (tree ret_expr
++		  = cp_walk_tree (&FOR_BODY (t), check_for_return_continue,
++				  &data, &pset))
++		*jump_target = ret_expr;
++	      return true;
++	    }
+ 	}
+       if (!RECUR (FOR_EXPR (t), any))
+ 	return false;
+@@ -8219,7 +8229,17 @@ potential_constant_expression_1 (tree t,
+ 	tmp = cxx_eval_outermost_constant_expr (tmp, true);
+       /* If we couldn't evaluate the condition, it might not ever be true.  */
+       if (!integer_onep (tmp))
+-	return true;
++	{
++	  /* Before returning true, check if the while body can contain
++	     a return.  */
++	  hash_set<tree> pset;
++	  check_for_return_continue_data data = { &pset, NULL_TREE };
++	  if (tree ret_expr
++	      = cp_walk_tree (&WHILE_BODY (t), check_for_return_continue,
++			      &data, &pset))
++	    *jump_target = ret_expr;
++	  return true;
++	}
+       if (!RECUR (WHILE_BODY (t), any))
+ 	return false;
+       if (breaks (jump_target) || continues (jump_target))
+--- gcc/testsuite/g++.dg/cpp1y/constexpr-98672.C.jj	2021-01-14 12:19:24.842438847 +0100
++++ gcc/testsuite/g++.dg/cpp1y/constexpr-98672.C	2021-01-14 12:07:33.935551155 +0100
+@@ -0,0 +1,35 @@
++// PR c++/98672
++// { dg-do compile { target c++14 } }
++
++void
++foo ()
++{
++}
++
++constexpr int
++bar ()
++{
++  for (int i = 0; i < 5; ++i)
++    return i;
++  foo ();
++  return 0;
++}
++
++constexpr int
++baz ()
++{
++  int i = 0;
++  while (i < 5)
++    {
++      if (i == 3)
++	return i;
++      else
++	++i;
++    }
++  foo ();
++  return 0;
++}
++
++constexpr int i = bar ();
++constexpr int j = baz ();
++static_assert (i == 0 && j == 3, "");

diff --git a/gcc11-pr98687.patch b/gcc11-pr98687.patch
new file mode 100644
index 0000000..d2e1ce0
--- /dev/null
+++ b/gcc11-pr98687.patch
@@ -0,0 +1,130 @@
+My recent patch that introduced push_using_decl_bindings didn't
+handle USING_DECL redeclaration, therefore things broke.  This
+patch amends that.  Note that I don't know if the other parts of
+finish_nonmember_using_decl are needed (e.g. the binding->type
+setting) -- I couldn't trigger it by any of my hand-made testcases.
+
+Sorry for not thinking harder about redeclarations in the original
+patch :(.
+
+2021-01-15  Marek Polacek  <polacek@redhat.com>
+
+	PR c++/98687
+	* name-lookup.c (push_using_decl_bindings): If we found an
+	existing local binding, update it if it's not identical.
+
+	* g++.dg/lookup/using64.C: New test.
+	* g++.dg/lookup/using65.C: New test.
+
+--- gcc/cp/name-lookup.c
++++ gcc/cp/name-lookup.c
+@@ -9285,8 +9285,24 @@ push_operator_bindings ()
+ void
+ push_using_decl_bindings (tree decl)
+ {
+-  push_local_binding (DECL_NAME (decl), USING_DECL_DECLS (decl),
+-		      /*using*/true);
++  tree name = DECL_NAME (decl);
++  tree value = USING_DECL_DECLS (decl);
++
++  cxx_binding *binding = find_local_binding (current_binding_level, name);
++  if (binding)
++    {
++      if (value == binding->value)
++	/* Redeclaration of this USING_DECL.  */;
++      else if (binding->value && TREE_CODE (value) == OVERLOAD)
++	{
++	  /* We already have this binding, so replace it.  */
++	  update_local_overload (IDENTIFIER_BINDING (name), value);
++	  IDENTIFIER_BINDING (name)->value = value;
++	}
++    }
++  else
++    /* Install the new binding.  */
++    push_local_binding (DECL_NAME (decl), value, /*using*/true);
+ }
+ 
+ #include "gt-cp-name-lookup.h"
+--- gcc/testsuite/g++.dg/lookup/using64.C
++++ gcc/testsuite/g++.dg/lookup/using64.C
+@@ -0,0 +1,60 @@
++// PR c++/98687
++// { dg-do compile }
++
++struct S { };
++
++namespace N {
++  template <typename T>
++  bool operator==(T, int);
++
++  template <typename T>
++  void X(T);
++}
++
++namespace M {
++  template <typename T>
++  bool operator==(T, double);
++}
++
++template<typename T>
++bool fn1 (T t)
++{
++  using N::operator==;
++  return t == 1;
++}
++
++template<typename T>
++bool fn2 (T t)
++{
++  // Redeclaration.
++  using N::operator==;
++  using N::operator==;
++  return t == 1;
++}
++
++template<typename T>
++bool fn3 (T t)
++{
++  // Need update_local_overload.
++  using N::operator==;
++  using M::operator==;
++  return t == 1;
++}
++
++template<typename T>
++void fn4 (T t)
++{
++  struct X { };
++  using N::X;
++  X(1);
++}
++
++void
++g ()
++{
++  S s;
++  fn1 (s);
++  fn2 (s);
++  fn3 (s);
++  fn4 (s);
++}
+--- gcc/testsuite/g++.dg/lookup/using65.C
++++ gcc/testsuite/g++.dg/lookup/using65.C
+@@ -0,0 +1,17 @@
++// PR c++/98687
++// { dg-do compile }
++
++extern "C" namespace std {
++  double log1p(double);
++}
++namespace std_fallback {
++  template <typename> void log1p();
++}
++template <typename> struct log1p_impl {
++  static int run() {
++    using std::log1p;
++    using std_fallback::log1p;
++    return 0;
++  }
++};
++void log1p() { log1p_impl<int>::run(); }

diff --git a/gcc11-pr98721.patch b/gcc11-pr98721.patch
new file mode 100644
index 0000000..6459a9c
--- /dev/null
+++ b/gcc11-pr98721.patch
@@ -0,0 +1,91 @@
+2021-01-19  Jakub Jelinek  <jakub@redhat.com>
+
+	PR tree-optimization/98721
+	* builtins.c (access_ref::inform_access): Don't assume
+	SSA_NAME_IDENTIFIER must be non-NULL.  Print messages about
+	object whenever allocfn is NULL, rather than only when DECL_P
+	is true.  Use %qE instead of %qD for that.  Formatting fixes.
+
+	* gcc.dg/pr98721-1.c: New test.
+	* gcc.dg/pr98721-2.c: New test.
+
+--- gcc/builtins.c.jj	2021-01-18 19:07:16.022895507 +0100
++++ gcc/builtins.c	2021-01-19 11:56:52.247070923 +0100
+@@ -4414,8 +4414,8 @@ access_ref::inform_access (access_mode m
+ 	 MAXREF on which the result is based.  */
+       const offset_int orng[] =
+ 	{
+-	 offrng[0] - maxref.offrng[0],
+-	 wi::smax (offrng[1] - maxref.offrng[1], offrng[0]),
++	  offrng[0] - maxref.offrng[0],
++	  wi::smax (offrng[1] - maxref.offrng[1], offrng[0]),
+ 	};
+ 
+       /* Add the final PHI's offset to that of each of the arguments
+@@ -4493,12 +4493,15 @@ access_ref::inform_access (access_mode m
+ 	      /* Strip the SSA_NAME suffix from the variable name and
+ 		 recreate an identifier with the VLA's original name.  */
+ 	      ref = gimple_call_lhs (stmt);
+-	      ref = SSA_NAME_IDENTIFIER (ref);
+-	      const char *id = IDENTIFIER_POINTER (ref);
+-	      size_t len = strcspn (id, ".$");
+-	      if (!len)
+-		len = strlen (id);
+-	      ref = get_identifier_with_length (id, len);
++	      if (SSA_NAME_IDENTIFIER (ref))
++		{
++		  ref = SSA_NAME_IDENTIFIER (ref);
++		  const char *id = IDENTIFIER_POINTER (ref);
++		  size_t len = strcspn (id, ".$");
++		  if (!len)
++		    len = strlen (id);
++		  ref = get_identifier_with_length (id, len);
++		}
+ 	    }
+ 	  else
+ 	    {
+@@ -4557,13 +4560,13 @@ access_ref::inform_access (access_mode m
+       return;
+     }
+ 
+-  if (DECL_P (ref))
++  if (allocfn == NULL_TREE)
+     {
+       if (*offstr)
+-	inform (loc, "at offset %s into source object %qD of size %s",
++	inform (loc, "at offset %s into source object %qE of size %s",
+ 		offstr, ref, sizestr);
+       else
+-	inform (loc, "source object %qD of size %s", ref,  sizestr);
++	inform (loc, "source object %qE of size %s", ref, sizestr);
+ 
+       return;
+     }
+--- gcc/testsuite/gcc.dg/pr98721-1.c.jj	2021-01-19 12:15:03.825600828 +0100
++++ gcc/testsuite/gcc.dg/pr98721-1.c	2021-01-19 12:14:24.730045488 +0100
+@@ -0,0 +1,14 @@
++/* PR tree-optimization/98721 */
++/* { dg-do compile } */
++/* { dg-options "-O2" } */
++
++int
++foo (int n)
++{
++  if (n <= 0)
++    {
++      char vla[n];			/* { dg-message "source object 'vla' of size 0" } */
++      return __builtin_strlen (vla);	/* { dg-warning "'__builtin_strlen' reading 1 or more bytes from a region of size 0" } */
++    }
++  return -1;
++}
+--- gcc/testsuite/gcc.dg/pr98721-2.c.jj	2021-01-19 12:00:16.005742548 +0100
++++ gcc/testsuite/gcc.dg/pr98721-2.c	2021-01-19 11:59:29.372275423 +0100
+@@ -0,0 +1,8 @@
++/* PR tree-optimization/98721 */
++/* { dg-do compile } */
++
++int
++foo (void)
++{
++  return __builtin_strlen (__builtin_alloca_with_align (0, 16));	/* { dg-warning "'__builtin_strlen' reading 1 or more bytes from a region of size 0" } */
++}	/* { dg-message "source object '<unknown>' of size 0" "" { target *-*-* } .-1 } */

diff --git a/gcc11-pr98742.patch b/gcc11-pr98742.patch
new file mode 100644
index 0000000..1b76510
--- /dev/null
+++ b/gcc11-pr98742.patch
@@ -0,0 +1,42 @@
+2021-01-19  Jakub Jelinek  <jakub@redhat.com>
+
+	PR c++/98742
+	* semantics.c (finish_omp_clauses) <case OMP_CLAUSE_DETACH>: If
+	error_operand_p, remove clause without further checking.  Check
+	for non-NULL TYPE_NAME.
+
+	* c-c++-common/gomp/task-detach-2.c: New test.
+
+--- gcc/cp/semantics.c.jj	2021-01-16 22:52:33.608413922 +0100
++++ gcc/cp/semantics.c	2021-01-19 10:53:07.979801786 +0100
+@@ -7430,12 +7430,18 @@ finish_omp_clauses (tree clauses, enum c
+ 	      remove = true;
+ 	      break;
+ 	    }
++	  else if (error_operand_p (t))
++	    {
++	      remove = true;
++	      break;
++	    }
+ 	  else
+ 	    {
+ 	      tree type = TYPE_MAIN_VARIANT (TREE_TYPE (t));
+ 	      if (!type_dependent_expression_p (t)
+ 		  && (!INTEGRAL_TYPE_P (type)
+ 		      || TREE_CODE (type) != ENUMERAL_TYPE
++		      || TYPE_NAME (type) == NULL_TREE
+ 		      || (DECL_NAME (TYPE_NAME (type))
+ 			  != get_identifier ("omp_event_handle_t"))))
+ 		{
+--- gcc/testsuite/c-c++-common/gomp/task-detach-2.c.jj	2021-01-19 11:07:29.345948289 +0100
++++ gcc/testsuite/c-c++-common/gomp/task-detach-2.c	2021-01-19 11:06:57.090317518 +0100
+@@ -0,0 +1,9 @@
++/* PR c++/98742 */
++/* { dg-do compile } */
++
++void
++foo ()
++{
++#pragma omp task detach(0)	/* { dg-error "before numeric constant" } */
++  ;
++}

^ permalink raw reply related	[flat|nested] 2+ messages in thread
* [rpms/gcc] rhel-f41-base: 11.0.0-0.15
@ 2026-06-29 12:29 Jakub Jelinek
  0 siblings, 0 replies; 2+ messages in thread
From: Jakub Jelinek @ 2026-06-29 12:29 UTC (permalink / raw)
  To: git-commits

A new commit has been pushed.

Repo   : rpms/gcc
Branch : rhel-f41-base
Commit : 6e2000ccdcdb66c5cfdc8eb6cbde89a7900e4603
Author : Jakub Jelinek <jakub@redhat.com>
Date   : 2021-01-19T14:36:34+01:00
Stats  : +35/-2 in 4 file(s)
URL    : https://src.fedoraproject.org/rpms/gcc/c/6e2000ccdcdb66c5cfdc8eb6cbde89a7900e4603?branch=rhel-f41-base

Log:
11.0.0-0.15

---
diff --git a/.gitignore b/.gitignore
index 66ca0a7..16d11cc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -29,3 +29,4 @@
 /gcc-11.0.0-20210109.tar.xz
 /gcc-11.0.0-20210113.tar.xz
 /gcc-11.0.0-20210116.tar.xz
+/gcc-11.0.0-20210119.tar.xz

diff --git a/gcc.spec b/gcc.spec
index 86f8247..5a69606 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -276,6 +276,7 @@ Patch13: gcc11-pr98672.patch
 Patch14: gcc11-pr98687.patch
 Patch15: gcc11-pr98721.patch
 Patch16: gcc11-pr98742.patch
+Patch17: gcc11-pr98638.patch
 
 # On ARM EABI systems, we do want -gnueabi to be part of the
 # target triple.
@@ -791,6 +792,7 @@ to NVidia PTX capable devices if available.
 %patch14 -p0 -b .pr98687~
 %patch15 -p0 -b .pr98721~
 %patch16 -p0 -b .pr98742~
+%patch17 -p0 -b .pr98638~
 
 rm -f libgomp/testsuite/*/*task-detach*
 
@@ -3085,7 +3087,8 @@ end
   - fix miscompilation of portable signed multiplication overflow check
     (#1916576, PR tree-optimization/98727)
   - switch to DWARF 5 by default
-- fix PRs c++/98672, c++/98687, c++/98742, tree-optimization/98721
+- fix PRs c++/98672, c++/98687, c++/98742, middle-end/98638,
+	  tree-optimization/98721
 
 * Sat Jan 16 2021 Jakub Jelinek <jakub@redhat.com> 11.0.0-0.14
 - update from trunk

diff --git a/gcc11-pr98638.patch b/gcc11-pr98638.patch
new file mode 100644
index 0000000..c399a30
--- /dev/null
+++ b/gcc11-pr98638.patch
@@ -0,0 +1,29 @@
+Since SSA names do leak into global tree data structures like
+TYPE_SIZE or in this case GFC_DECL_SAVED_DESCRIPTOR because of
+frontend bugs we have to be careful to wipe references to the
+CFG when we deconstruct SSA form because we now do ggc_free that.
+
+Bootstrapped and tested on x86_64-unknown-linux-gnu, pushed.
+
+2021-01-19  Richard Biener  <rguenther@suse.de>
+
+	PR middle-end/98638
+	* tree-ssanames.c (fini_ssanames): Zero SSA_NAME_DEF_STMT.
+
+--- gcc/tree-ssanames.c
++++ gcc/tree-ssanames.c
+@@ -102,6 +102,14 @@ init_ssanames (struct function *fn, int size)
+ void
+ fini_ssanames (struct function *fn)
+ {
++  unsigned i;
++  tree name;
++  /* Some SSA names leak into global tree data structures so we can't simply
++     ggc_free them.  But make sure to clear references to stmts since we now
++     ggc_free the CFG itself.  */
++  FOR_EACH_VEC_SAFE_ELT (SSANAMES (fn), i, name)
++    if (name)
++      SSA_NAME_DEF_STMT (name) = NULL;
+   vec_free (SSANAMES (fn));
+   vec_free (FREE_SSANAMES (fn));
+   vec_free (FREE_SSANAMES_QUEUE (fn));

diff --git a/sources b/sources
index 6d46e14..9f41955 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,3 @@
-SHA512 (gcc-11.0.0-20210116.tar.xz) = befda0f25ccc682205d2ed6a50edba3da059042fa0a25e3a435011765c8f61e895eef52ebeed7de0bf61f97ee8308645779f3dc55675cabe51acc6ea74c517b0
+SHA512 (gcc-11.0.0-20210119.tar.xz) = 67fc01799d7af841f5b2b63fe40fc5eac01fe25cb6bb0994de46babbdabe8aee384ea0fbd41b5ac7b53b32ce5724618cb0026ac2e1d3d2431751b225f8e96783
 SHA512 (newlib-cygwin-50e2a63b04bdd018484605fbb954fd1bd5147fa0.tar.xz) = 002a48a7b689a81abbf16161bcaec001a842e67dfbe372e9e109092703bfc666675f16198f60ca429370e8850d564547dc505df81bc3aaca4ce6defbc014ad6c
 SHA512 (nvptx-tools-5f6f343a302d620b0868edab376c00b15741e39e.tar.xz) = f6d10db94fa1570ae0f94df073fa3c73c8e5ee16d59070b53d94f7db0de8a031bc44d7f3f1852533da04b625ce758e022263855ed43cfc6867e0708d001e53c7

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

end of thread, other threads:[~2026-06-29 12:29 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-06-29 12:29 [rpms/gcc] rhel-f41-base: 11.0.0-0.15 Jakub Jelinek
2026-06-29 12:29 Jakub Jelinek

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox