12.0.1-0.7
This commit is contained in:
parent
62d2a570da
commit
f58fc62400
1
.gitignore
vendored
1
.gitignore
vendored
@ -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
|
||||
|
51
gcc.spec
51
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,
|
||||
|
@ -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)
|
||||
|
49
gcc12-pr104513.patch
Normal file
49
gcc12-pr104513.patch
Normal file
@ -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;
|
2
sources
2
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
|
||||
|
Loading…
Reference in New Issue
Block a user