Minor refactoring of my last patch.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103475 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/CGExpr.cpp b/lib/CodeGen/CGExpr.cpp
index 8b8b659..5379415 100644
--- a/lib/CodeGen/CGExpr.cpp
+++ b/lib/CodeGen/CGExpr.cpp
@@ -1672,11 +1672,12 @@
 
   case CastExpr::CK_NoOp: {
     LValue LV = EmitLValue(E->getSubExpr());
-    // FIXME. assign a meaningfull cast kind.
     if (LV.isPropertyRef()) {
-      RValue RV = EmitLoadOfPropertyRefLValue(LV, E->getSubExpr()->getType());
-      llvm::Value *V = RV.isScalar() ? RV.getScalarVal() : RV.getAggregateAddr();
-      return LValue::MakeAddr(V, MakeQualifiers(E->getSubExpr()->getType()));
+      QualType QT = E->getSubExpr()->getType();
+      RValue RV = EmitLoadOfPropertyRefLValue(LV, QT);
+      assert(!RV.isScalar() && "EmitCastLValue - scalar cast of property ref");
+      llvm::Value *V = RV.getAggregateAddr();
+      return LValue::MakeAddr(V, MakeQualifiers(QT));
     }
     return LV;
   }