diff options
author | Eli Friedman <eli.friedman@gmail.com> | 2011-09-27 01:11:35 +0000 |
---|---|---|
committer | Eli Friedman <eli.friedman@gmail.com> | 2011-09-27 01:11:35 +0000 |
commit | f272d40d7cc507e48f42dbd79d182878e0effeaa (patch) | |
tree | 7ac4d4bf194e0b1a96e31984f89534c95e675e5f /clang/lib/Sema/SemaInit.cpp | |
parent | 9f01f893860d38a6b7ea8bfabe8aa45a60e5d032 (diff) | |
download | bcm5719-llvm-f272d40d7cc507e48f42dbd79d182878e0effeaa.tar.gz bcm5719-llvm-f272d40d7cc507e48f42dbd79d182878e0effeaa.zip |
PR11009: Fix a FIXME which was leading to an assertion failure with rvalue references.
llvm-svn: 140594
Diffstat (limited to 'clang/lib/Sema/SemaInit.cpp')
-rw-r--r-- | clang/lib/Sema/SemaInit.cpp | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/clang/lib/Sema/SemaInit.cpp b/clang/lib/Sema/SemaInit.cpp index 0c518c7bda1..e61fe2d5195 100644 --- a/clang/lib/Sema/SemaInit.cpp +++ b/clang/lib/Sema/SemaInit.cpp @@ -4482,7 +4482,6 @@ InitializationSequence::Perform(Sema &S, FunctionDecl *Fn = Step->Function.Function; DeclAccessPair FoundFn = Step->Function.FoundDecl; bool CreatedObject = false; - bool IsLvalue = false; if (CXXConstructorDecl *Constructor = dyn_cast<CXXConstructorDecl>(Fn)) { // Build a call to the selected constructor. ASTOwningVector<Expr*> ConstructorArgs(S); @@ -4520,7 +4519,6 @@ InitializationSequence::Perform(Sema &S, } else { // Build a call to the conversion function. CXXConversionDecl *Conversion = cast<CXXConversionDecl>(Fn); - IsLvalue = Conversion->getResultType()->isLValueReferenceType(); S.CheckMemberOperatorAccess(Kind.getLocation(), CurInit.get(), 0, FoundFn); S.DiagnoseUseOfDecl(FoundFn, Kind.getLocation()); @@ -4560,11 +4558,10 @@ InitializationSequence::Perform(Sema &S, } } - // FIXME: xvalues CurInit = S.Owned(ImplicitCastExpr::Create(S.Context, CurInit.get()->getType(), CastKind, CurInit.get(), 0, - IsLvalue ? VK_LValue : VK_RValue)); + CurInit.get()->getValueKind())); if (RequiresCopy) CurInit = CopyObject(S, Entity.getType().getNonReferenceType(), Entity, |