diff options
author | Matheus Izvekov <mizvekov@gmail.com> | 2021-06-14 13:23:18 +0200 |
---|---|---|
committer | Matheus Izvekov <mizvekov@gmail.com> | 2021-07-01 12:10:06 +0200 |
commit | 7d2d5a3a6d7aaa40468c30250bf6b0938ef02c08 (patch) | |
tree | c75d810c2dc7fecd35371fed9cc6fc03d1494098 /llvm/lib/CodeGen/MachineInstr.cpp | |
parent | cd8f979fe48c068e9cd50c283833fa8c4430b20b (diff) | |
download | llvm-7d2d5a3a6d7aaa40468c30250bf6b0938ef02c08.zip llvm-7d2d5a3a6d7aaa40468c30250bf6b0938ef02c08.tar.gz llvm-7d2d5a3a6d7aaa40468c30250bf6b0938ef02c08.tar.bz2 |
[clang] Apply P1825 as Defect Report from C++11 up to C++20.
This extends the effects of [[ http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1825r0.html | P1825 ]] to all C++ standards from C++11 up to C++20.
According to Motion 23 from Cologne 2019, P1825R0 was accepted as a Defect Report, so we retroactively apply this all the way back to C++11.
Note that we also remove implicit moves from C++98 as an extension
altogether, since the expanded first overload resolution from P1825
can cause some meaning changes in C++98.
For example it can change which copy constructor is picked when both const
and non-const ones are available.
This also rips out warn_return_std_move since there are no cases where it would be worthwhile to suggest it.
This also fixes a bug with bailing into the second overload resolution
when encountering a non-rvref qualified conversion operator.
This was unnoticed until now, so two new test cases cover these.
Signed-off-by: Matheus Izvekov <mizvekov@gmail.com>
Reviewed By: rsmith
Differential Revision: https://reviews.llvm.org/D104500
Diffstat (limited to 'llvm/lib/CodeGen/MachineInstr.cpp')
0 files changed, 0 insertions, 0 deletions