diff --git a/.gitignore b/.gitignore index 159ca68..8d0fe1d 100644 --- a/.gitignore +++ b/.gitignore @@ -69,3 +69,4 @@ /gcc-9.0.1-20190227.tar.xz /gcc-9.0.1-20190309.tar.xz /gcc-9.0.1-20190312.tar.xz +/gcc-9.0.1-20190320.tar.xz diff --git a/gcc.spec b/gcc.spec index 7d49003..2c4fbf8 100644 --- a/gcc.spec +++ b/gcc.spec @@ -1,10 +1,10 @@ -%global DATE 20190312 -%global SVNREV 269606 +%global DATE 20190320 +%global SVNREV 269820 %global gcc_version 9.0.1 %global gcc_major 9 # Note, gcc_release must be integer, if you want to add suffixes to # %%{release}, append them after %%{gcc_release} on Release: line. -%global gcc_release 0.10 +%global gcc_release 0.11 %global nvptx_tools_gitrev c28050f60193b3b95a18866a96f03334e874e78f %global nvptx_newlib_gitrev aadc8eb0ec43b7cd0dd2dfb484bae63c8b05ef24 %global _unpackaged_files_terminate_build 0 @@ -255,8 +255,6 @@ Patch9: gcc9-Wno-format-security.patch Patch10: gcc9-rh1574936.patch Patch11: gcc9-d-shared-libphobos.patch Patch12: gcc9-pr89093.patch -Patch13: gcc9-pr89652.patch -Patch14: gcc9-pr89660.patch Patch1000: nvptx-tools-no-ptxas.patch Patch1001: nvptx-tools-build.patch @@ -768,8 +766,6 @@ to NVidia PTX capable devices if available. %endif %patch11 -p0 -b .d-shared-libphobos~ %patch12 -p0 -b .pr89093~ -%patch13 -p0 -b .pr89652~ -%patch14 -p0 -b .pr89660~ cd nvptx-tools-%{nvptx_tools_gitrev} %patch1000 -p1 -b .nvptx-tools-no-ptxas~ @@ -2961,7 +2957,28 @@ end %endif %changelog -% Thu Mar 14 2019 Jakub Jelinek 9.0.1-0.11 +* Wed Mar 20 2019 Jakub Jelinek 9.0.1-0.11 +- update from trunk + - PRs c++/63508, c++/85014, c++/85558, c++/88534, c++/88537, c++/88979, + c++/89512, c++/89571, c++/89630, c++/89640, c++/89660, c++/89682, + c++/89686, c++/89709, c++/89761, c/89734, d/87866, d/88957, + debug/88389, debug/89498, debug/89704, fortran/60091, fortran/66695, + fortran/68009, fortran/77746, fortran/79485, fortran/84394, + fortran/87045, fortran/87673, fortran/88008, fortran/89363, + fortran/89364, fortran/89601, fortran/89724, ipa/89684, + libstdc++/89461, lto/87809, lto/89335, middle-end/86979, + middle-end/88588, middle-end/88945, middle-end/89677, + middle-end/89698, middle-end/89737, other/89712, + rtl-optimization/89679, rtl-optimization/89721, + rtl-optimization/89753, rtl-optimization/89768, sanitizer/80953, + target/52726, target/85860, target/87532, target/87561, target/89378, + target/89411, target/89523, target/89627, target/89650, target/89711, + target/89719, target/89726, target/89736, target/89746, target/89752, + testsuite/83453, testsuite/84174, testsuite/89393, testsuite/89471, + testsuite/89666, tree-optimization/89546, tree-optimization/89644, + tree-optimization/89662, tree-optimization/89688, + tree-optimization/89703, tree-optimization/89710, + tree-optimization/89720 - turn libgcc_s.so into a linker script on i?86, x86_64, ppc64le and also on ppc and ppc64 for 64-bit multilib (#1688766) diff --git a/gcc9-pr89652.patch b/gcc9-pr89652.patch deleted file mode 100644 index 8fde67d..0000000 --- a/gcc9-pr89652.patch +++ /dev/null @@ -1,69 +0,0 @@ -2019-03-12 Jakub Jelinek - - PR c++/89652 - * constexpr.c (cxx_eval_loop_expr): Only remove SAVE_EXPRs that are - still in new_ctx.values hash_map. - - * g++.dg/cpp1y/constexpr-89652.C: New test. - ---- gcc/cp/constexpr.c.jj 2019-03-08 08:43:23.529496048 +0100 -+++ gcc/cp/constexpr.c 2019-03-11 15:11:32.081334270 +0100 -@@ -4236,7 +4236,8 @@ cxx_eval_loop_expr (const constexpr_ctx - /* Forget saved values of SAVE_EXPRs. */ - for (hash_set::iterator iter = save_exprs.begin(); - iter != save_exprs.end(); ++iter) -- new_ctx.values->remove (*iter); -+ if (new_ctx.values->get (*iter)) -+ new_ctx.values->remove (*iter); - - if (++count >= constexpr_loop_limit) - { -@@ -4258,7 +4259,8 @@ cxx_eval_loop_expr (const constexpr_ctx - /* Forget saved values of SAVE_EXPRs. */ - for (hash_set::iterator iter = save_exprs.begin(); - iter != save_exprs.end(); ++iter) -- new_ctx.values->remove (*iter); -+ if (new_ctx.values->get (*iter)) -+ new_ctx.values->remove (*iter); - - return NULL_TREE; - } ---- gcc/testsuite/g++.dg/cpp1y/constexpr-89652.C.jj 2019-03-11 15:14:21.877561575 +0100 -+++ gcc/testsuite/g++.dg/cpp1y/constexpr-89652.C 2019-03-11 15:16:11.962763933 +0100 -@@ -0,0 +1,36 @@ -+// PR c++/89652 -+// { dg-do compile { target c++14 } } -+// { dg-options "" } -+ -+template constexpr auto foo (T &e) { return e.foo (); } -+template constexpr auto bar (T &e) { return foo (e); } -+template struct A { typedef T a[N]; }; -+template struct B { -+ typedef T *b; -+ typename A::a d; -+ constexpr b foo () { return d; } -+}; -+template struct C { long m; }; -+struct D { long n; }; -+template struct E { -+ B, 1>::b p; -+ constexpr D operator* () { return {p->m}; } -+ constexpr E operator++ (int) { auto a{*this}; ++p; return a; } -+}; -+template -+constexpr bool operator!= (E a, E) { return a.p; } -+template -+constexpr auto baz (B s, B) -+{ -+ B t{}; -+ auto q{foo (t)}; -+ using u = E; -+ auto v = u{bar (s)}; -+ auto w = u{}; -+ while (v != w) -+ *q++ = *v++; -+ return t; -+} -+constexpr auto a = B, 5>{}; -+auto b = B{}; -+auto c = baz (a, b); diff --git a/gcc9-pr89660.patch b/gcc9-pr89660.patch deleted file mode 100644 index 49234ab..0000000 --- a/gcc9-pr89660.patch +++ /dev/null @@ -1,55 +0,0 @@ -2019-03-12 Jakub Jelinek - - PR c++/89660 - Revert: - 2019-03-06 Marek Polacek - - PR c++/87378 - bogus -Wredundant-move warning. - * typeck.c (maybe_warn_pessimizing_move): See if the maybe-rvalue - overload resolution would actually succeed. - - * g++.dg/cpp0x/Wredundant-move1.C (fn4): Drop dg-warning. - ---- gcc/cp/typeck.c (revision 269427) -+++ gcc/cp/typeck.c (revision 269426) -@@ -9429,24 +9429,10 @@ maybe_warn_pessimizing_move (tree retval - do maybe-rvalue overload resolution even without std::move. */ - else if (treat_lvalue_as_rvalue_p (arg, /*parm_ok*/true)) - { -- /* Make sure that the overload resolution would actually succeed -- if we removed the std::move call. */ -- tree t = convert_for_initialization (NULL_TREE, functype, -- move (arg), -- (LOOKUP_NORMAL -- | LOOKUP_ONLYCONVERTING -- | LOOKUP_PREFER_RVALUE), -- ICR_RETURN, NULL_TREE, 0, -- tf_none); -- /* If this worked, implicit rvalue would work, so the call to -- std::move is redundant. */ -- if (t != error_mark_node) -- { -- auto_diagnostic_group d; -- if (warning_at (loc, OPT_Wredundant_move, -- "redundant move in return statement")) -- inform (loc, "remove % call"); -- } -+ auto_diagnostic_group d; -+ if (warning_at (loc, OPT_Wredundant_move, -+ "redundant move in return statement")) -+ inform (loc, "remove % call"); - } - } - } ---- gcc/testsuite/g++.dg/cpp0x/Wredundant-move1.C (revision 269427) -+++ gcc/testsuite/g++.dg/cpp0x/Wredundant-move1.C (revision 269426) -@@ -59,8 +59,7 @@ T - fn4 (const T t) - { - // t is const: will decay into copy despite std::move, so it's redundant. -- // We used to warn about this, but no longer since c++/87378. -- return std::move (t); -+ return std::move (t); // { dg-warning "redundant move in return statement" } - } - - int diff --git a/sources b/sources index 57b494e..298fab6 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (gcc-9.0.1-20190312.tar.xz) = 23ef500528212ea4542398d6909548e6dc5e12a7e58c750895ce85ff5a24e6ed637fcb361a8c248b79e0c93ecbfb72606d07c004a02b891f2078c12e973f51f1 +SHA512 (gcc-9.0.1-20190320.tar.xz) = 20ca885e0afca0470142113271d47eed2876dd778c308f72c9fea86b58a69ab798a8b3b398f240b49a41907adb47446ba087171b75f079597bad3d4348436e18 SHA512 (nvptx-newlib-aadc8eb0ec43b7cd0dd2dfb484bae63c8b05ef24.tar.xz) = 94f7089365296f7dfa485107b4143bebc850a81586f3460fd896bbbb6ba099a00217d4042133424fd2183b352132f4fd367e6a60599bdae2a26dfd48a77d0e04 SHA512 (nvptx-tools-c28050f60193b3b95a18866a96f03334e874e78f.tar.xz) = a688cb12cf805950a5abbb13b52f45c81dbee98e310b7ed57ae20e76dbfa5964a16270148374a6426d177db71909d28360490f091c86a5d19d4faa5127beeee1