diff options
author | Douglas Gregor <dgregor@apple.com> | 2011-01-21 19:38:21 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2011-01-21 19:38:21 +0000 |
commit | cc15f010672a13b38104a32e3cefc7adc07ffbf7 (patch) | |
tree | 6d229587f576842290d3770ef4aa8518cd7b1abc /test/SemaCXX/rval-references-examples.cpp | |
parent | 4a46c77813af1241139b81a086b539e4d734cb86 (diff) |
Implement the preference for move-construction over copy-construction
when returning an NRVO candidate expression. For example, this
properly picks the move constructor when dealing with code such as
MoveOnlyType f() { MoveOnlyType mot; return mot; }
The previously-XFAIL'd rvalue-references test case now works, and has
been moved into the appropriate paragraph-specific test case.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123992 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/SemaCXX/rval-references-examples.cpp')
-rw-r--r-- | test/SemaCXX/rval-references-examples.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/test/SemaCXX/rval-references-examples.cpp b/test/SemaCXX/rval-references-examples.cpp index 1cde5854ba..778924d657 100644 --- a/test/SemaCXX/rval-references-examples.cpp +++ b/test/SemaCXX/rval-references-examples.cpp @@ -59,7 +59,7 @@ unique_ptr<T> make_unique_ptr(Args &&...args) { template<typename T> void accept_unique_ptr(unique_ptr<T>); // expected-note{{passing argument to parameter here}} -void test_unique_ptr() { +unique_ptr<int> test_unique_ptr() { // Simple construction unique_ptr<int> p; unique_ptr<int> p1(new int); @@ -85,4 +85,6 @@ void test_unique_ptr() { // Implicit copies (failures); accept_unique_ptr(p); // expected-error{{call to deleted constructor of 'unique_ptr<int>'}} + + return p; } |