diff options
| author | Douglas Gregor <dgregor@apple.com> | 2010-04-18 07:40:54 +0000 |
|---|---|---|
| committer | Douglas Gregor <dgregor@apple.com> | 2010-04-18 07:40:54 +0000 |
| commit | c9cd64eee393798c413ba20392c09c78c2a90ad5 (patch) | |
| tree | c891b19abaef4bfd903053d9fe815cb88932455d /clang/lib/Sema/Sema.h | |
| parent | 554a39889b6d80e109dc33d1e4b7cb12e7caee4b (diff) | |
| download | bcm5719-llvm-c9cd64eee393798c413ba20392c09c78c2a90ad5.tar.gz bcm5719-llvm-c9cd64eee393798c413ba20392c09c78c2a90ad5.zip | |
In C++98/03, when binding a reference to an rvalue of
reference-compatible type, the implementation is permitted to make a
copy of the rvalue (or many such copies, even). However, even though
we don't make that copy, we are required to check for the presence of
a suitable copy constructor. With this change, we do.
Note that in C++0x we are not allowed to make these copies, so we test
both dialects separately.
Also note the FIXME in one of the C++03 tests, where we are not
instantiating default function arguments for the copy constructor we
pick (but do not call). The fix is obvious; eliminating the infinite
recursion it causes is not. Will address that next.
llvm-svn: 101704
Diffstat (limited to 'clang/lib/Sema/Sema.h')
| -rw-r--r-- | clang/lib/Sema/Sema.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/clang/lib/Sema/Sema.h b/clang/lib/Sema/Sema.h index ef76882ac08..e057a924c75 100644 --- a/clang/lib/Sema/Sema.h +++ b/clang/lib/Sema/Sema.h @@ -2154,7 +2154,7 @@ public: bool CompleteConstructorCall(CXXConstructorDecl *Constructor, MultiExprArg ArgsPtr, - SourceLocation Loc, + SourceLocation Loc, ASTOwningVector<&ActionBase::DeleteExpr> &ConvertedArgs); virtual TypeTy *getDestructorName(SourceLocation TildeLoc, |

