diff options
Diffstat (limited to 'clang/lib/Sema/SemaExprCXX.cpp')
-rw-r--r-- | clang/lib/Sema/SemaExprCXX.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/clang/lib/Sema/SemaExprCXX.cpp b/clang/lib/Sema/SemaExprCXX.cpp index d89a0909aa1..aefec6a7a68 100644 --- a/clang/lib/Sema/SemaExprCXX.cpp +++ b/clang/lib/Sema/SemaExprCXX.cpp @@ -943,7 +943,13 @@ Sema::PerformImplicitConversion(Expr *&From, QualType ToType, // FIXME: When can ToType be a reference type? assert(!ToType->isReferenceType()); - From = BuildCXXConstructExpr(ToType, SCS.CopyConstructor, &From, 1); + OwningExprResult FromResult = + BuildCXXConstructExpr(ToType, SCS.CopyConstructor, &From, 1); + + if (FromResult.isInvalid()) + return true; + + From = FromResult.takeAs<Expr>(); return false; } |