aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/Sema/SemaExprCXX.cpp2
-rw-r--r--lib/Sema/SemaInit.cpp6
2 files changed, 6 insertions, 2 deletions
diff --git a/lib/Sema/SemaExprCXX.cpp b/lib/Sema/SemaExprCXX.cpp
index fb5428a6b4..100f787059 100644
--- a/lib/Sema/SemaExprCXX.cpp
+++ b/lib/Sema/SemaExprCXX.cpp
@@ -1850,7 +1850,7 @@ Sema::PerformImplicitConversion(Expr *&From, QualType ToType,
// Should this get its own ICK?
if (From->getObjectKind() == OK_ObjCProperty) {
ConvertPropertyForRValue(From);
- if (!From->isRValue()) break;
+ if (!From->isGLValue()) break;
}
FromType = FromType.getUnqualifiedType();
diff --git a/lib/Sema/SemaInit.cpp b/lib/Sema/SemaInit.cpp
index 6595927caf..555166076d 100644
--- a/lib/Sema/SemaInit.cpp
+++ b/lib/Sema/SemaInit.cpp
@@ -3100,6 +3100,10 @@ InitializationSequence::InitializationSequence(Sema &S,
return;
}
+ for (unsigned I = 0; I != NumArgs; ++I)
+ if (Args[I]->getObjectKind() == OK_ObjCProperty)
+ S.ConvertPropertyForRValue(Args[I]);
+
QualType SourceType;
Expr *Initializer = 0;
if (NumArgs == 1) {
@@ -3214,7 +3218,7 @@ InitializationSequence::InitializationSequence(Sema &S,
/*AllowExplicitConversions*/ false,
/*InOverloadResolution*/ false))
{
- if (Initializer->getType() == Context.OverloadTy )
+ if (Initializer->getType() == Context.OverloadTy)
SetFailed(InitializationSequence::FK_AddressOfOverloadFailed);
else
SetFailed(InitializationSequence::FK_ConversionFailed);