9.0.1-0.10
This commit is contained in:
parent
bad9bc25a4
commit
843493ecf7
1
.gitignore
vendored
1
.gitignore
vendored
@ -68,3 +68,4 @@
|
||||
/gcc-9.0.1-20190221.tar.xz
|
||||
/gcc-9.0.1-20190227.tar.xz
|
||||
/gcc-9.0.1-20190309.tar.xz
|
||||
/gcc-9.0.1-20190312.tar.xz
|
||||
|
26
gcc.spec
26
gcc.spec
@ -1,10 +1,10 @@
|
||||
%global DATE 20190309
|
||||
%global SVNREV 269524
|
||||
%global DATE 20190312
|
||||
%global SVNREV 269606
|
||||
%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.9
|
||||
%global gcc_release 0.10
|
||||
%global nvptx_tools_gitrev c28050f60193b3b95a18866a96f03334e874e78f
|
||||
%global nvptx_newlib_gitrev aadc8eb0ec43b7cd0dd2dfb484bae63c8b05ef24
|
||||
%global _unpackaged_files_terminate_build 0
|
||||
@ -255,7 +255,8 @@ Patch9: gcc9-Wno-format-security.patch
|
||||
Patch10: gcc9-rh1574936.patch
|
||||
Patch11: gcc9-d-shared-libphobos.patch
|
||||
Patch12: gcc9-pr89093.patch
|
||||
Patch13: gcc9-pr89629.patch
|
||||
Patch13: gcc9-pr89652.patch
|
||||
Patch14: gcc9-pr89660.patch
|
||||
|
||||
Patch1000: nvptx-tools-no-ptxas.patch
|
||||
Patch1001: nvptx-tools-build.patch
|
||||
@ -767,7 +768,8 @@ to NVidia PTX capable devices if available.
|
||||
%endif
|
||||
%patch11 -p0 -b .d-shared-libphobos~
|
||||
%patch12 -p0 -b .pr89093~
|
||||
%patch13 -p0 -b .pr89629~
|
||||
%patch13 -p0 -b .pr89652~
|
||||
%patch14 -p0 -b .pr89660~
|
||||
|
||||
cd nvptx-tools-%{nvptx_tools_gitrev}
|
||||
%patch1000 -p1 -b .nvptx-tools-no-ptxas~
|
||||
@ -2956,6 +2958,20 @@ end
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Tue Mar 12 2019 Jakub Jelinek <jakub@redhat.com> 9.0.1-0.10
|
||||
- update from trunk
|
||||
- PRs bootstrap/89656, c++/70349, c++/86521, c++/87571, c++/87750,
|
||||
c++/89648, c/88568, contrib/82704, d/89041, fortran/66089,
|
||||
fortran/71544, fortran/84504, fortran/87734, fortran/89639,
|
||||
fortran/89651, inline-asm/87010, libbacktrace/89669, libstdc++/89460,
|
||||
libstdc++/89641, middle-end/68733, middle-end/89655, middle-end/89663,
|
||||
rtl-optimization/89588, testsuite/89472, tree-optimization/85459,
|
||||
tree-optimization/85762, tree-optimization/87008,
|
||||
tree-optimization/89649, tree-optimization/89664
|
||||
- fix ICE in constexpr loop handling of SAVE_EXPRs (PR c++/89652)
|
||||
- temporarily revert -Wredundant-move warning false positive
|
||||
improvement (PR c++/89660)
|
||||
|
||||
* Sat Mar 9 2019 Jakub Jelinek <jakub@redhat.com> 9.0.1-0.9
|
||||
- update from trunk
|
||||
- PRs bootstrap/89539, bootstrap/89560, c++/22149, c++/63540, c++/71446,
|
||||
|
@ -1,17 +0,0 @@
|
||||
2019-03-08 Jonathan Wakely <jwakely@redhat.com>
|
||||
|
||||
PR libstdc++/89629
|
||||
* libsupc++/hash_bytes.cc (std::_Hash_bytes): Change len_aligned type
|
||||
from int to size_t.
|
||||
|
||||
--- libstdc++-v3/libsupc++/hash_bytes.cc
|
||||
+++ libstdc++-v3/libsupc++/hash_bytes.cc
|
||||
@@ -139,7 +139,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
||||
|
||||
// Remove the bytes not divisible by the sizeof(size_t). This
|
||||
// allows the main loop to process the data as 64-bit integers.
|
||||
- const int len_aligned = len & ~0x7;
|
||||
+ const size_t len_aligned = len & ~0x7;
|
||||
const char* const end = buf + len_aligned;
|
||||
size_t hash = seed ^ (len * mul);
|
||||
for (const char* p = buf; p != end; p += 8)
|
69
gcc9-pr89652.patch
Normal file
69
gcc9-pr89652.patch
Normal file
@ -0,0 +1,69 @@
|
||||
2019-03-12 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
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<tree>::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<tree>::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 <typename T> constexpr auto foo (T &e) { return e.foo (); }
|
||||
+template <typename T> constexpr auto bar (T &e) { return foo (e); }
|
||||
+template <typename T, int N> struct A { typedef T a[N]; };
|
||||
+template <typename T, unsigned long N> struct B {
|
||||
+ typedef T *b;
|
||||
+ typename A<T, N>::a d;
|
||||
+ constexpr b foo () { return d; }
|
||||
+};
|
||||
+template <typename> struct C { long m; };
|
||||
+struct D { long n; };
|
||||
+template <typename, unsigned long> struct E {
|
||||
+ B<C<int>, 1>::b p;
|
||||
+ constexpr D operator* () { return {p->m}; }
|
||||
+ constexpr E operator++ (int) { auto a{*this}; ++p; return a; }
|
||||
+};
|
||||
+template <typename T, unsigned long N>
|
||||
+constexpr bool operator!= (E<T, N> a, E<T, N>) { return a.p; }
|
||||
+template <unsigned long N, typename T, unsigned long M>
|
||||
+constexpr auto baz (B<T, M> s, B<D, N>)
|
||||
+{
|
||||
+ B<D, M> t{};
|
||||
+ auto q{foo (t)};
|
||||
+ using u = E<T, M>;
|
||||
+ auto v = u{bar (s)};
|
||||
+ auto w = u{};
|
||||
+ while (v != w)
|
||||
+ *q++ = *v++;
|
||||
+ return t;
|
||||
+}
|
||||
+constexpr auto a = B<C<int>, 5>{};
|
||||
+auto b = B<D, 0>{};
|
||||
+auto c = baz (a, b);
|
55
gcc9-pr89660.patch
Normal file
55
gcc9-pr89660.patch
Normal file
@ -0,0 +1,55 @@
|
||||
2019-03-12 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR c++/89660
|
||||
Revert:
|
||||
2019-03-06 Marek Polacek <polacek@redhat.com>
|
||||
|
||||
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 %<std::move%> call");
|
||||
- }
|
||||
+ auto_diagnostic_group d;
|
||||
+ if (warning_at (loc, OPT_Wredundant_move,
|
||||
+ "redundant move in return statement"))
|
||||
+ inform (loc, "remove %<std::move%> 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
|
2
sources
2
sources
@ -1,3 +1,3 @@
|
||||
SHA512 (gcc-9.0.1-20190309.tar.xz) = 84aadddc04c9f655c7ecaf90bb111da9aa82e0b4e937588f7e2c4089cb8d8e55c4ae9479fc0e46c0e2c9cd4738f8afcb178f3920528c0badb1c15c5aba54f0a1
|
||||
SHA512 (gcc-9.0.1-20190312.tar.xz) = 23ef500528212ea4542398d6909548e6dc5e12a7e58c750895ce85ff5a24e6ed637fcb361a8c248b79e0c93ecbfb72606d07c004a02b891f2078c12e973f51f1
|
||||
SHA512 (nvptx-newlib-aadc8eb0ec43b7cd0dd2dfb484bae63c8b05ef24.tar.xz) = 94f7089365296f7dfa485107b4143bebc850a81586f3460fd896bbbb6ba099a00217d4042133424fd2183b352132f4fd367e6a60599bdae2a26dfd48a77d0e04
|
||||
SHA512 (nvptx-tools-c28050f60193b3b95a18866a96f03334e874e78f.tar.xz) = a688cb12cf805950a5abbb13b52f45c81dbee98e310b7ed57ae20e76dbfa5964a16270148374a6426d177db71909d28360490f091c86a5d19d4faa5127beeee1
|
||||
|
Loading…
Reference in New Issue
Block a user