diff options
Diffstat (limited to 'clang/lib/Sema/SemaExprCXX.cpp')
-rw-r--r-- | clang/lib/Sema/SemaExprCXX.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/clang/lib/Sema/SemaExprCXX.cpp b/clang/lib/Sema/SemaExprCXX.cpp index 5450d1949f0..b3d94c372dc 100644 --- a/clang/lib/Sema/SemaExprCXX.cpp +++ b/clang/lib/Sema/SemaExprCXX.cpp @@ -764,7 +764,7 @@ Sema::PerformImplicitConversion(Expr *&From, QualType ToType, // the constructor or conversion operator, and then cope with the // standard conversions. ImpCastExprToType(From, ToType.getNonReferenceType(), - ToType->isReferenceType()); + ToType->isLValueReferenceType()); return false; case ImplicitConversionSequence::EllipsisConversion: @@ -800,7 +800,7 @@ Sema::PerformImplicitConversion(Expr *&From, QualType ToType, // FIXME: Create a temporary object by calling the copy // constructor. ImpCastExprToType(From, ToType.getNonReferenceType(), - ToType->isReferenceType()); + ToType->isLValueReferenceType()); return false; } @@ -893,8 +893,10 @@ Sema::PerformImplicitConversion(Expr *&From, QualType ToType, break; case ICK_Qualification: + // FIXME: Not sure about lvalue vs rvalue here in the presence of + // rvalue references. ImpCastExprToType(From, ToType.getNonReferenceType(), - ToType->isReferenceType()); + ToType->isLValueReferenceType()); break; default: |