From 93f9e68547698664f452060ba56c4dbfea1b9195 Mon Sep 17 00:00:00 2001
From: Jakub Jelinek
Date: Thu, 22 Apr 2021 19:15:37 +0200
Subject: [PATCH] 11.0.1-0.6
---
.gitignore | 1 +
gcc.spec | 20 ++++++-
gcc11-dg-ice.patch | 113 +++++++++++++++++++++++++++++++++++++
gcc11-libstdc++-docs.patch | 4 +-
gcc11-pr100148.patch | 71 +++++++++++++++++++++++
sources | 2 +-
6 files changed, 205 insertions(+), 6 deletions(-)
create mode 100644 gcc11-dg-ice.patch
create mode 100644 gcc11-pr100148.patch
diff --git a/.gitignore b/.gitignore
index 94709df..7d5eb0c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -40,3 +40,4 @@
/gcc-11.0.1-20210324.tar.xz
/gcc-11.0.1-20210405.tar.xz
/gcc-11.0.1-20210418.tar.xz
+/gcc-11.0.1-20210422.tar.xz
diff --git a/gcc.spec b/gcc.spec
index a7a4fa4..f93584c 100644
--- a/gcc.spec
+++ b/gcc.spec
@@ -1,5 +1,5 @@
-%global DATE 20210418
-%global gitrev 8047a824dd92293d2ab13b33e1a0c5c8b4c83256
+%global DATE 20210422
+%global gitrev 8047c64ba5baee42eb0744563b2f44da8b464154
%global gcc_version 11.0.1
%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}.5%{?dist}
+Release: %{gcc_release}.6%{?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
@@ -265,6 +265,8 @@ Patch10: gcc11-Wno-format-security.patch
Patch11: gcc11-rh1574936.patch
Patch12: gcc11-d-shared-libphobos.patch
Patch13: gcc11-pr99341-revert.patch
+Patch14: gcc11-pr100148.patch
+Patch15: gcc11-dg-ice.patch
Patch100: gcc11-fortran-fdec-duplicates.patch
Patch101: gcc11-fortran-flogical-as-integer.patch
@@ -788,6 +790,8 @@ to NVidia PTX capable devices if available.
%endif
%patch12 -p0 -b .d-shared-libphobos~
%patch13 -p0 -b .pr99341-revert~
+%patch14 -p0 -b .pr100148~
+%patch15 -p0 -b .dg-ice~
%if 0%{?rhel} >= 9
%patch100 -p1 -b .fortran-fdec-duplicates~
@@ -3130,6 +3134,16 @@ end
%endif
%changelog
+* Wed Apr 22 2021 Jakub Jelinek 11.0.1-0.6
+- update from trunk and releases/gcc-11 branch
+ - GCC 11.1-rc1
+ - PRs ada/99360, c++/97536, c/100143, d/98058, d/98457, d/98494, d/98584,
+ d/99794, demangler/100177, fortran/100110, libstdc++/95983,
+ libstdc++/100146, libstdc++/100164, preprocessor/100142,
+ rtl-optimization/99927, target/100108, testsuite/100176,
+ tree-optimization/100081
+- fix a cprop -fcompare-debug bug (PR rtl-optimization/100148)
+
* Sun Apr 18 2021 Jakub Jelinek 11.0.1-0.5
- update from trunk
- PRs analyzer/98599, analyzer/99042, analyzer/99212, analyzer/99774,
diff --git a/gcc11-dg-ice.patch b/gcc11-dg-ice.patch
new file mode 100644
index 0000000..de9944c
--- /dev/null
+++ b/gcc11-dg-ice.patch
@@ -0,0 +1,113 @@
+testsuite: Add -fchecking to dg-ice tests
+
+In --enable-checking=release builds (which is the default on release
+branches), I'm getting various extra FAILs that don't appear in
+--enable-checking=yes builds.
+
+XPASS: g++.dg/cpp0x/constexpr-52830.C -std=c++14 (internal compiler error)
+FAIL: g++.dg/cpp0x/constexpr-52830.C -std=c++14 (test for excess errors)
+XPASS: g++.dg/cpp0x/constexpr-52830.C -std=c++17 (internal compiler error)
+FAIL: g++.dg/cpp0x/constexpr-52830.C -std=c++17 (test for excess errors)
+XPASS: g++.dg/cpp0x/constexpr-52830.C -std=c++2a (internal compiler error)
+FAIL: g++.dg/cpp0x/constexpr-52830.C -std=c++2a (test for excess errors)
+FAIL: g++.dg/cpp0x/vt-88982.C -std=c++14 (test for excess errors)
+FAIL: g++.dg/cpp0x/vt-88982.C -std=c++17 (test for excess errors)
+FAIL: g++.dg/cpp0x/vt-88982.C -std=c++2a (test for excess errors)
+FAIL: g++.dg/cpp1y/auto-fn61.C -std=c++14 (test for excess errors)
+FAIL: g++.dg/cpp1y/auto-fn61.C -std=c++17 (test for excess errors)
+FAIL: g++.dg/cpp1y/auto-fn61.C -std=c++2a (test for excess errors)
+FAIL: g++.dg/cpp1z/constexpr-lambda26.C -std=c++17 (test for excess errors)
+FAIL: g++.dg/cpp1z/constexpr-lambda26.C -std=c++2a (test for excess errors)
+FAIL: g++.dg/cpp2a/nontype-class39.C -std=c++2a (test for excess errors)
+FAIL: c-c++-common/goacc/kernels-decompose-ice-1.c -std=c++14 (test for excess errors)
+FAIL: c-c++-common/goacc/kernels-decompose-ice-1.c -std=c++17 (test for excess errors)
+FAIL: c-c++-common/goacc/kernels-decompose-ice-1.c -std=c++2a (test for excess errors)
+FAIL: c-c++-common/goacc/kernels-decompose-ice-1.c -std=c++98 (test for excess errors)
+FAIL: c-c++-common/goacc/kernels-decompose-ice-2.c -std=c++14 (test for excess errors)
+FAIL: c-c++-common/goacc/kernels-decompose-ice-2.c -std=c++17 (test for excess errors)
+FAIL: c-c++-common/goacc/kernels-decompose-ice-2.c -std=c++2a (test for excess errors)
+FAIL: c-c++-common/goacc/kernels-decompose-ice-2.c -std=c++98 (test for excess errors)
+
+These are tests that have dg-ice and most of those ICEs are checking ICEs
+which go away in release checking when -fno-checking is the default.
+
+The following patch adds -fchecking option to those.
+
+2021-04-21 Jakub Jelinek
+
+ * g++.dg/cpp1z/constexpr-lambda26.C: Add dg-additional-options
+ -fchecking.
+ * g++.dg/cpp1y/auto-fn61.C: Likewise.
+ * g++.dg/cpp2a/nontype-class39.C: Likewise.
+ * g++.dg/cpp0x/constexpr-52830.C: Likewise.
+ * g++.dg/cpp0x/vt-88982.C: Likewise.
+ * c-c++-common/goacc/kernels-decompose-ice-1.c: Add -fchecking to
+ dg-additional-options.
+ * c-c++-common/goacc/kernels-decompose-ice-2.c: Likewise.
+
+--- gcc/testsuite/c-c++-common/goacc/kernels-decompose-ice-1.c
++++ gcc/testsuite/c-c++-common/goacc/kernels-decompose-ice-1.c
+@@ -1,7 +1,7 @@
+ /* Test OpenACC 'kernels' construct decomposition. */
+
+ /* { dg-additional-options "-fopt-info-omp-all" } */
+-/* { dg-additional-options "--param=openacc-kernels=decompose" } */
++/* { dg-additional-options "-fchecking --param=openacc-kernels=decompose" } */
+ /* { dg-ice "TODO" }
+ { dg-prune-output "during GIMPLE pass: omplower" } */
+
+--- gcc/testsuite/c-c++-common/goacc/kernels-decompose-ice-2.c
++++ gcc/testsuite/c-c++-common/goacc/kernels-decompose-ice-2.c
+@@ -1,6 +1,6 @@
+ /* Test OpenACC 'kernels' construct decomposition. */
+
+-/* { dg-additional-options "--param=openacc-kernels=decompose" } */
++/* { dg-additional-options "-fchecking --param=openacc-kernels=decompose" } */
+ /* { dg-ice "TODO" }
+ { dg-prune-output "during GIMPLE pass: omplower" } */
+
+--- gcc/testsuite/g++.dg/cpp0x/constexpr-52830.C
++++ gcc/testsuite/g++.dg/cpp0x/constexpr-52830.C
+@@ -1,5 +1,6 @@
+ // PR c++/52830
+ // { dg-do compile { target c++11 } }
++// { dg-additional-options "-fchecking" }
+ // { dg-ice "comptypes" }
+
+ template struct eif { typedef void type; };
+--- gcc/testsuite/g++.dg/cpp0x/vt-88982.C
++++ gcc/testsuite/g++.dg/cpp0x/vt-88982.C
+@@ -1,5 +1,6 @@
+ // PR c++/88982
+ // { dg-do compile { target c++11 } }
++// { dg-additional-options "-fchecking" }
+ // { dg-ice "tsubst_pack_expansion" }
+
+ template struct A {
+--- gcc/testsuite/g++.dg/cpp1y/auto-fn61.C
++++ gcc/testsuite/g++.dg/cpp1y/auto-fn61.C
+@@ -1,5 +1,6 @@
+ // PR c++/88003
+ // { dg-do compile { target c++14 } }
++// { dg-additional-options "-fchecking" }
+ // { dg-ice "poplevel_class" }
+
+ auto test() {
+--- gcc/testsuite/g++.dg/cpp1z/constexpr-lambda26.C
++++ gcc/testsuite/g++.dg/cpp1z/constexpr-lambda26.C
+@@ -1,5 +1,6 @@
+ // PR c++/87765
+ // { dg-do compile { target c++17 } }
++// { dg-additional-options "-fchecking" }
+ // { dg-ice "cxx_eval_constant_expression" }
+
+ template
+--- gcc/testsuite/g++.dg/cpp2a/nontype-class39.C
++++ gcc/testsuite/g++.dg/cpp2a/nontype-class39.C
+@@ -1,5 +1,6 @@
+ // PR c++/89565
+ // { dg-do compile { target c++20 } }
++// { dg-additional-options "-fchecking" }
+ // { dg-ice "resolve_args" }
+
+ template
diff --git a/gcc11-libstdc++-docs.patch b/gcc11-libstdc++-docs.patch
index 9ea9f88..ec29880 100644
--- a/gcc11-libstdc++-docs.patch
+++ b/gcc11-libstdc++-docs.patch
@@ -4,7 +4,7 @@
FSF
-+ Release 11.0.0
++ Release 11.0.1
+
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation
@@ -17,7 +17,7 @@
- The API documentation, rendered into HTML, can be viewed online
+ The API documentation, rendered into HTML, can be viewed locally
-+ for the 11.0.0 release,
++ for the 11.0.1 release,
+ online
for each GCC release
and
diff --git a/gcc11-pr100148.patch b/gcc11-pr100148.patch
new file mode 100644
index 0000000..4d21845
--- /dev/null
+++ b/gcc11-pr100148.patch
@@ -0,0 +1,71 @@
+cprop: Fix -fcompare-debug bug in constprop_register [PR100148]
+
+The following testcase shows different behavior between -g and -g0
+in constprop_register, if a flags register setter is separated
+from a conditional jump using those flags with -g by a DEBUG_INSN.
+As it uses just NEXT_INSN, for -g it will look at the DEBUG_INSN which is
+not a conditional jump, while otherwise it would look at the conditional
+jump and call cprop_jump.
+
+2021-04-21 Jakub Jelinek
+
+ PR rtl-optimization/100148
+ * cprop.c (constprop_register): Use next_nondebug_insn instead of
+ NEXT_INSN.
+
+ * g++.dg/opt/pr100148.C: New test.
+
+--- gcc/cprop.c
++++ gcc/cprop.c
+@@ -1007,16 +1007,18 @@ static int
+ constprop_register (rtx from, rtx src, rtx_insn *insn)
+ {
+ rtx sset;
++ rtx_insn *next_insn;
+
+ /* Check for reg or cc0 setting instructions followed by
+ conditional branch instructions first. */
+ if ((sset = single_set (insn)) != NULL
+- && NEXT_INSN (insn)
+- && any_condjump_p (NEXT_INSN (insn)) && onlyjump_p (NEXT_INSN (insn)))
++ && (next_insn = next_nondebug_insn (insn)) != NULL
++ && any_condjump_p (next_insn)
++ && onlyjump_p (next_insn))
+ {
+ rtx dest = SET_DEST (sset);
+ if ((REG_P (dest) || CC0_P (dest))
+- && cprop_jump (BLOCK_FOR_INSN (insn), insn, NEXT_INSN (insn),
++ && cprop_jump (BLOCK_FOR_INSN (insn), insn, next_insn,
+ from, src))
+ return 1;
+ }
+--- gcc/testsuite/g++.dg/opt/pr100148.C
++++ gcc/testsuite/g++.dg/opt/pr100148.C
+@@ -0,0 +1,27 @@
++// PR rtl-optimization/100148
++// { dg-do compile }
++// { dg-options "-O2 -fno-dce -fno-tree-dce -fno-tree-dominator-opts -fno-tree-sink -fcompare-debug" }
++
++int i;
++enum E { } e, ee;
++
++bool
++baz (int)
++{
++ return ee;
++}
++
++bool bar ();
++bool a, b;
++
++void
++foo ()
++{
++ switch (ee)
++ {
++ case 0:
++ e = E (a ? : i);
++ case 1:
++ !(b || baz (0) && bar ());
++ }
++}
diff --git a/sources b/sources
index 065a048..251a285 100644
--- a/sources
+++ b/sources
@@ -1,4 +1,4 @@
-SHA512 (gcc-11.0.1-20210418.tar.xz) = 7b6870beafff15d806e26f353f0504189c42e4eb06bee142a19e0b75dcc7912a772206557d5f8bd6425414b54aa54abc0ee75b92b2ed0ada6d7a07c8ec944dae
+SHA512 (gcc-11.0.1-20210422.tar.xz) = b2eac2bc381998bd2794fe764b11a5d6a7aa2d7d2b64ccc1e02fd22644157b566db4f0e52ab40750c23852eef8e17b4bdf49df1c3ad9a80570a46db4c95be07b
SHA512 (isl-0.18.tar.bz2) = 85d0b40f4dbf14cb99d17aa07048cdcab2dc3eb527d2fbb1e84c41b2de5f351025370e57448b63b2b8a8cf8a0843a089c3263f9baee1542d5c2e1cb37ed39d94
SHA512 (newlib-cygwin-50e2a63b04bdd018484605fbb954fd1bd5147fa0.tar.xz) = 002a48a7b689a81abbf16161bcaec001a842e67dfbe372e9e109092703bfc666675f16198f60ca429370e8850d564547dc505df81bc3aaca4ce6defbc014ad6c
SHA512 (nvptx-tools-5f6f343a302d620b0868edab376c00b15741e39e.tar.xz) = f6d10db94fa1570ae0f94df073fa3c73c8e5ee16d59070b53d94f7db0de8a031bc44d7f3f1852533da04b625ce758e022263855ed43cfc6867e0708d001e53c7