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