public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/gcc] rhel-f41-base: 12.0.1-0.7
@ 2026-06-29 12:29 Jakub Jelinek
  0 siblings, 0 replies; only message 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 : f58fc62400f4681345eeafc53d0149eeff774e54
Author : Jakub Jelinek <jakub@redhat.com>
Date   : 2022-02-12T19:36:08+01:00
Stats  : +178/-16 in 5 file(s)
URL    : https://src.fedoraproject.org/rpms/gcc/c/f58fc62400f4681345eeafc53d0149eeff774e54?branch=rhel-f41-base

Log:
12.0.1-0.7

---
diff --git a/.gitignore b/.gitignore
index c53c35a..b81e2a3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -62,3 +62,4 @@
 /gcc-12.0.1-20220129.tar.xz
 /gcc-12.0.1-20220202.tar.xz
 /gcc-12.0.1-20220205.tar.xz
+/gcc-12.0.1-20220212.tar.xz

diff --git a/gcc.spec b/gcc.spec
index 3695272..c4a52ba 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -1,5 +1,5 @@
-%global DATE 20220205
-%global gitrev 76de92944e8628662e44eab3065caad0a3c0e032
+%global DATE 20220212
+%global gitrev dfda32cd0cba98db0f084f7d4ded68140e925e41
 %global gcc_version 12.0.1
 %global gcc_major 12
 # Note, gcc_release must be integer, if you want to add suffixes to
@@ -120,7 +120,7 @@
 Summary: Various compilers (C, C++, Objective-C, ...)
 Name: gcc
 Version: %{gcc_version}
-Release: %{gcc_release}.6%{?dist}
+Release: %{gcc_release}.7%{?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
@@ -304,7 +304,7 @@ Patch109: gcc12-fortran-fdec-add-missing-indexes.patch
 %if %{build_go}
 # Avoid stripping these libraries and binaries.
 %global __os_install_post \
-chmod 644 %{buildroot}%{_prefix}/%{_lib}/libgo.so.20.* \
+chmod 644 %{buildroot}%{_prefix}/%{_lib}/libgo.so.21.* \
 chmod 644 %{buildroot}%{_prefix}/bin/go.gcc \
 chmod 644 %{buildroot}%{_prefix}/bin/gofmt.gcc \
 chmod 644 %{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/cgo \
@@ -312,7 +312,7 @@ chmod 644 %{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}
 chmod 644 %{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/test2json \
 chmod 644 %{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/vet \
 %__os_install_post \
-chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgo.so.20.* \
+chmod 755 %{buildroot}%{_prefix}/%{_lib}/libgo.so.21.* \
 chmod 755 %{buildroot}%{_prefix}/bin/go.gcc \
 chmod 755 %{buildroot}%{_prefix}/bin/gofmt.gcc \
 chmod 755 %{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/cgo \
@@ -1464,7 +1464,7 @@ ln -sf ../../../libstdc++.so.6.*[0-9] libstdc++.so
 ln -sf ../../../libgfortran.so.5.* libgfortran.so
 ln -sf ../../../libgomp.so.1.* libgomp.so
 %if %{build_go}
-ln -sf ../../../libgo.so.20.* libgo.so
+ln -sf ../../../libgo.so.21.* libgo.so
 %endif
 %if %{build_libquadmath}
 ln -sf ../../../libquadmath.so.0.* libquadmath.so
@@ -1494,7 +1494,7 @@ ln -sf ../../../../%{_lib}/libstdc++.so.6.*[0-9] libstdc++.so
 ln -sf ../../../../%{_lib}/libgfortran.so.5.* libgfortran.so
 ln -sf ../../../../%{_lib}/libgomp.so.1.* libgomp.so
 %if %{build_go}
-ln -sf ../../../../%{_lib}/libgo.so.20.* libgo.so
+ln -sf ../../../../%{_lib}/libgo.so.21.* libgo.so
 %endif
 %if %{build_libquadmath}
 ln -sf ../../../../%{_lib}/libquadmath.so.0.* libquadmath.so
@@ -1615,8 +1615,8 @@ ln -sf ../`echo ../../../../lib/libgfortran.so.5.* | sed s~/lib/~/lib64/~` 64/li
 ln -sf ../`echo ../../../../lib/libgomp.so.1.* | sed s~/lib/~/lib64/~` 64/libgomp.so
 %if %{build_go}
 rm -f libgo.so
-echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib/libgo.so.20.* | sed 's,^.*libg,libg,'`' )' > libgo.so
-echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libgo.so.20.* | sed 's,^.*libg,libg,'`' )' > 64/libgo.so
+echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib/libgo.so.21.* | sed 's,^.*libg,libg,'`' )' > libgo.so
+echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib/libgo.so.21.* | sed 's,^.*libg,libg,'`' )' > 64/libgo.so
 %endif
 %if %{build_libquadmath}
 rm -f libquadmath.so
@@ -1716,8 +1716,8 @@ ln -sf ../`echo ../../../../lib64/libgfortran.so.5.* | sed s~/../lib64/~/~` 32/l
 ln -sf ../`echo ../../../../lib64/libgomp.so.1.* | sed s~/../lib64/~/~` 32/libgomp.so
 %if %{build_go}
 rm -f libgo.so
-echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libgo.so.20.* | sed 's,^.*libg,libg,'`' )' > libgo.so
-echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libgo.so.20.* | sed 's,^.*libg,libg,'`' )' > 32/libgo.so
+echo 'INPUT ( %{_prefix}/lib64/'`echo ../../../../lib64/libgo.so.21.* | sed 's,^.*libg,libg,'`' )' > libgo.so
+echo 'INPUT ( %{_prefix}/lib/'`echo ../../../../lib64/libgo.so.21.* | sed 's,^.*libg,libg,'`' )' > 32/libgo.so
 %endif
 %if %{build_libquadmath}
 rm -f libquadmath.so
@@ -1907,7 +1907,7 @@ chmod 755 %{buildroot}%{_prefix}/%{_lib}/liblsan.so.0.*
 %endif
 %if %{build_go}
 # Avoid stripping these libraries and binaries.
-chmod 644 %{buildroot}%{_prefix}/%{_lib}/libgo.so.20.*
+chmod 644 %{buildroot}%{_prefix}/%{_lib}/libgo.so.21.*
 chmod 644 %{buildroot}%{_prefix}/bin/go.gcc
 chmod 644 %{buildroot}%{_prefix}/bin/gofmt.gcc
 chmod 644 %{buildroot}%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_major}/cgo
@@ -3059,7 +3059,7 @@ end
 %doc rpm.doc/go/*
 
 %files -n libgo
-%attr(755,root,root) %{_prefix}/%{_lib}/libgo.so.20*
+%attr(755,root,root) %{_prefix}/%{_lib}/libgo.so.21*
 %doc rpm.doc/libgo/*
 
 %files -n libgo-devel
@@ -3167,6 +3167,31 @@ end
 %endif
 
 %changelog
+* Sat Feb 12 2022 Jakub Jelinek <jakub@redhat.com> 12.0.1-0.7
+- update from trunk
+  - PRs analyzer/98797, analyzer/101081, analyzer/102052, analyzer/103872,
+	analyzer/104274, analyzer/104417, analyzer/104452, c++/80951,
+	c++/96242, c++/96876, c++/102204, c++/103706, c++/103752, c++/104033,
+	c++/104379, c++/104403, c++/104410, c++/104425, c++/104432,
+	c++/104472, c/104427, debug/104407, fortran/66193, fortran/104329,
+	libgomp/104385, libstdc++/104442, middle-end/100775,
+	middle-end/104402, middle-end/104446, middle-end/104450,
+	middle-end/104464, middle-end/104467, middle-end/104496,
+	rtl-optimization/104059, rtl-optimization/104153,
+	rtl-optimization/104198, rtl-optimization/104400,
+	rtl-optimization/104459, sanitizer/104449, target/35513, target/79754,
+	target/97005, target/97040, target/100593, target/102140,
+	target/103627, target/104117, target/104283, target/104327,
+	target/104345, target/104364, target/104441, target/104451,
+	target/104453, target/104456, target/104458, target/104462,
+	target/104469, target/104474, target/104502, testsuite/104481,
+	tree-optimization/102832, tree-optimization/104288,
+	tree-optimization/104373, tree-optimization/104420,
+	tree-optimization/104445, tree-optimization/104466,
+	tree-optimization/104479, tree-optimization/104499
+- fix handling of return in arm constexpr ctors and on all arches return in
+  constexpr dtors (PR c++/104513)
+
 * Sat Feb  5 2022 Jakub Jelinek <jakub@redhat.com> 12.0.1-0.6
 - update from trunk
   - PRs analyzer/104369, c++/92385, c++/104079, c++/104300, c++/104302,

diff --git a/gcc12-ifcvt-revert.patch b/gcc12-ifcvt-revert.patch
index 2261669..dd13271 100644
--- a/gcc12-ifcvt-revert.patch
+++ b/gcc12-ifcvt-revert.patch
@@ -1,6 +1,93 @@
-Revert r12-674{3,4,5,6,7,8,9}, as there are several PRs reported against
-those changes: PR104153, PR104154 and PR104198 at least.
+Revert r12-674{3,4,5,6,7,8,9} and r12-7114, as there are several PRs reported
+against those changes still unresolved.
 
+--- gcc/ifcvt.cc
++++ gcc/ifcvt.cc
+@@ -3391,11 +3391,7 @@ noce_convert_multiple_sets_1 (struct noce_if_info *if_info,
+   rtx cond = noce_get_condition (jump, &cond_earliest, false);
+ 
+   rtx cc_cmp = cond_exec_get_condition (jump);
+-  if (cc_cmp)
+-    cc_cmp = copy_rtx (cc_cmp);
+   rtx rev_cc_cmp = cond_exec_get_condition (jump, /* get_reversed */ true);
+-  if (rev_cc_cmp)
+-    rev_cc_cmp = copy_rtx (rev_cc_cmp);
+ 
+   rtx_insn *insn;
+   int count = 0;
+@@ -3519,7 +3515,6 @@ noce_convert_multiple_sets_1 (struct noce_if_info *if_info,
+       unsigned cost1 = 0, cost2 = 0;
+       rtx_insn *seq, *seq1, *seq2;
+       rtx temp_dest = NULL_RTX, temp_dest1 = NULL_RTX, temp_dest2 = NULL_RTX;
+-      bool read_comparison = false;
+ 
+       seq1 = try_emit_cmove_seq (if_info, temp, cond,
+ 				 new_val, old_val, need_cmov,
+@@ -3529,41 +3524,10 @@ noce_convert_multiple_sets_1 (struct noce_if_info *if_info,
+ 	 as well.  This allows the backend to emit a cmov directly without
+ 	 creating an additional compare for each.  If successful, costing
+ 	 is easier and this sequence is usually preferred.  */
+-      seq2 = try_emit_cmove_seq (if_info, temp, cond,
++      seq2 = try_emit_cmove_seq (if_info, target, cond,
+ 				 new_val, old_val, need_cmov,
+ 				 &cost2, &temp_dest2, cc_cmp, rev_cc_cmp);
+ 
+-      /* The backend might have created a sequence that uses the
+-	 condition.  Check this.  */
+-      rtx_insn *walk = seq2;
+-      while (walk)
+-	{
+-	  rtx set = single_set (walk);
+-
+-	  if (!set || !SET_SRC (set))
+-	    {
+-	      walk = NEXT_INSN (walk);
+-	      continue;
+-	    }
+-
+-	  rtx src = SET_SRC (set);
+-
+-	  if (XEXP (set, 1) && GET_CODE (XEXP (set, 1)) == IF_THEN_ELSE)
+-	    ; /* We assume that this is the cmove created by the backend that
+-		 naturally uses the condition.  Therefore we ignore it.  */
+-	  else
+-	    {
+-	      if (reg_mentioned_p (XEXP (cond, 0), src)
+-		  || reg_mentioned_p (XEXP (cond, 1), src))
+-		{
+-		  read_comparison = true;
+-		  break;
+-		}
+-	    }
+-
+-	  walk = NEXT_INSN (walk);
+-	}
+-
+       /* Check which version is less expensive.  */
+       if (seq1 != NULL_RTX && (cost1 <= cost2 || seq2 == NULL_RTX))
+ 	{
+@@ -3576,8 +3540,6 @@ noce_convert_multiple_sets_1 (struct noce_if_info *if_info,
+ 	{
+ 	  seq = seq2;
+ 	  temp_dest = temp_dest2;
+-	  if (!second_try && read_comparison)
+-	    *last_needs_comparison = count;
+ 	}
+       else
+ 	{
+@@ -3596,12 +3558,6 @@ noce_convert_multiple_sets_1 (struct noce_if_info *if_info,
+       unmodified_insns->safe_push (insn);
+     }
+ 
+-  /* Even if we did not actually need the comparison, we want to make sure
+-     to try a second time in order to get rid of the temporaries.  */
+-  if (*last_needs_comparison == -1)
+-    *last_needs_comparison = 0;
+-
+-
+   return true;
+ }
+ 
 --- gcc/config/rs6000/rs6000.cc
 +++ gcc/config/rs6000/rs6000.cc
 @@ -16373,10 +16373,10 @@ rs6000_emit_minmax (rtx dest, enum rtx_code code, rtx op0, rtx op1)

diff --git a/gcc12-pr104513.patch b/gcc12-pr104513.patch
new file mode 100644
index 0000000..cc6bb08
--- /dev/null
+++ b/gcc12-pr104513.patch
@@ -0,0 +1,49 @@
+2022-02-12  Jakub Jelinek  <jakub@redhat.com>
+
+	PR c++/104513
+	* constexpr.cc (potential_constant_expression_1) <case GOTO_EXPR>:
+	Don't punt if returns (target).
+
+	* g++.dg/cpp1y/constexpr-104513.C: New test.
+	* g++.dg/cpp2a/constexpr-dtor12.C: New test.
+
+--- gcc/cp/constexpr.cc.jj	2022-02-11 13:52:32.697425776 +0100
++++ gcc/cp/constexpr.cc	2022-02-12 13:51:21.000274390 +0100
+@@ -9364,7 +9364,7 @@ potential_constant_expression_1 (tree t,
+       {
+ 	tree *target = &TREE_OPERAND (t, 0);
+ 	/* Gotos representing break and continue are OK.  */
+-	if (breaks (target) || continues (target))
++	if (breaks (target) || continues (target) || returns (target))
+ 	  {
+ 	    *jump_target = *target;
+ 	    return true;
+--- gcc/testsuite/g++.dg/cpp1y/constexpr-104513.C.jj	2022-02-12 19:05:14.374101202 +0100
++++ gcc/testsuite/g++.dg/cpp1y/constexpr-104513.C	2022-02-12 19:06:09.745332658 +0100
+@@ -0,0 +1,10 @@
++// PR c++/104513
++// { dg-do compile { target c++14 } }
++
++struct A {
++  int a1;
++  short a2, a3;
++  long a4;
++  constexpr A() : a1(42), a2(42), a3(42), a4(42) { return; }
++};
++constexpr A a;
+--- gcc/testsuite/g++.dg/cpp2a/constexpr-dtor12.C.jj	2022-02-12 19:04:41.610555957 +0100
++++ gcc/testsuite/g++.dg/cpp2a/constexpr-dtor12.C	2022-02-12 19:04:18.473877087 +0100
+@@ -0,0 +1,13 @@
++// PR c++/104513
++// { dg-do compile { target c++20 } }
++
++struct S {
++  constexpr S () : s (nullptr) {}
++  constexpr ~S () { delete s; }
++  int *s;
++};
++struct T : S {
++  constexpr T () : S () {}
++  constexpr ~T () { s = new int (42); return; }
++};
++constexpr T t;

diff --git a/sources b/sources
index 09baf06..c25ccb6 100644
--- a/sources
+++ b/sources
@@ -1,4 +1,4 @@
-SHA512 (gcc-12.0.1-20220205.tar.xz) = fdfcf57df5df9ec765c2017a76bfad1d1f02124f5e51078232c841cdb02848db3a55c3adf6f303e7545617b3df5a0ed84d9eee89f6e9b3fd1db27297736e44be
+SHA512 (gcc-12.0.1-20220212.tar.xz) = c2d95f912ad841ca93a811dda9598ab535dee0001b58de369c4220a2da2b2f648b75b6b0783382db05c7ea7df71e4f7909e28d7b0dda7c0547ca6d02050e6a5a
 SHA512 (isl-0.18.tar.bz2) = 85d0b40f4dbf14cb99d17aa07048cdcab2dc3eb527d2fbb1e84c41b2de5f351025370e57448b63b2b8a8cf8a0843a089c3263f9baee1542d5c2e1cb37ed39d94
 SHA512 (newlib-cygwin-50e2a63b04bdd018484605fbb954fd1bd5147fa0.tar.xz) = 002a48a7b689a81abbf16161bcaec001a842e67dfbe372e9e109092703bfc666675f16198f60ca429370e8850d564547dc505df81bc3aaca4ce6defbc014ad6c
 SHA512 (nvptx-tools-5f6f343a302d620b0868edab376c00b15741e39e.tar.xz) = f6d10db94fa1570ae0f94df073fa3c73c8e5ee16d59070b53d94f7db0de8a031bc44d7f3f1852533da04b625ce758e022263855ed43cfc6867e0708d001e53c7

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2026-06-29 12:29 UTC | newest]

Thread overview: (only message) (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: 12.0.1-0.7 Jakub Jelinek

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