diff options
author | Eric Fiselier <eric@efcs.ca> | 2019-06-21 15:20:55 +0000 |
---|---|---|
committer | Eric Fiselier <eric@efcs.ca> | 2019-06-21 15:20:55 +0000 |
commit | 000f25a37e76317aa78b0f6dd9283ba41af94591 (patch) | |
tree | 988a2d163afe5459926808aaa05139cc86ec7e61 /llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp | |
parent | ddb9093684062b6552b338ff754c674e79a55826 (diff) | |
download | llvm-000f25a37e76317aa78b0f6dd9283ba41af94591.zip llvm-000f25a37e76317aa78b0f6dd9283ba41af94591.tar.gz llvm-000f25a37e76317aa78b0f6dd9283ba41af94591.tar.bz2 |
Make move and forward work in C++03.
These functions are key to allowing the use of rvalues and variadics
in C++03 mode. Everything works the same as in C++11, except for one
tangentially related case:
struct T {
T(T &&) = default;
};
In C++11, T has a deleted copy constructor. But in C++03 Clang gives
it both a move and a copy constructor. This seems reasonable enough
given the extensions it's using.
The other changes in this patch were the minimal set required
to keep the tests passing after the move/forward change. Most notably
the removal of the `__rv<unique_ptr>` hack that was present
in an attempt to make unique_ptr move only without language support.
llvm-svn: 364063
Diffstat (limited to 'llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp')
0 files changed, 0 insertions, 0 deletions