diff options
author | Jakub Jelinek <jakub@redhat.com> | 2022-01-12 09:47:46 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@redhat.com> | 2022-01-12 09:47:46 +0100 |
commit | 6bba184ccbf47368eaea27ee2c1e7b850526640b (patch) | |
tree | 8fea1eaac85031e99470e88c42030a756b1ff7ed /gcc/go | |
parent | 7c3b9c17363bf30fcab9814252b9d5860711a10b (diff) | |
download | gcc-6bba184ccbf47368eaea27ee2c1e7b850526640b.zip gcc-6bba184ccbf47368eaea27ee2c1e7b850526640b.tar.gz gcc-6bba184ccbf47368eaea27ee2c1e7b850526640b.tar.bz2 |
c++: Silence -Wuseless-cast warnings during move [PR103480]
This is maybe just a shot in the dark, but IMHO we shouldn't be diagnosing
-Wuseless-cast on casts the compiler adds on its own when calling its move
function. We don't seem to warn when user calls std::move either.
We call move on elinit (*NON_LVALUE_EXPR <(struct C[2] &&) &D.2497->b>)[0]
so it is already an xvalue_p and try to static_cast it to struct C &&.
But we don't warn e.g. on std::move (std::move (whatever)).
Fixed by not doing the static cast and just returning expr from move
if expr is already an xvalue.
2022-01-11 Jakub Jelinek <jakub@redhat.com>
Jason Merrill <jason@redhat.com>
PR c++/103480
* tree.c (move): If expr is xvalue_p, just return expr without
build_static_cast.
* g++.dg/warn/Wuseless-cast2.C: New test.
Diffstat (limited to 'gcc/go')
0 files changed, 0 insertions, 0 deletions