Get the base class addresses before calling EmitClassCopyAssignment.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102676 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/CGClass.cpp b/lib/CodeGen/CGClass.cpp
index 1641a83..98ed1b3 100644
--- a/lib/CodeGen/CGClass.cpp
+++ b/lib/CodeGen/CGClass.cpp
@@ -778,13 +778,16 @@
 
   for (CXXRecordDecl::base_class_const_iterator Base = ClassDecl->bases_begin();
        Base != ClassDecl->bases_end(); ++Base) {
-    // FIXME. copy assignment of virtual base NYI
-    if (Base->isVirtual())
-      continue;
-
+    
+    llvm::Value *Dest = GetAddressOfBaseClass(ThisPtr, ClassDecl, 
+                                              CXXBaseSpecifierArray(Base), 
+                                              /*NullCheckValue=*/false);
+    llvm::Value *Src = GetAddressOfBaseClass(SrcPtr, ClassDecl, 
+                                             CXXBaseSpecifierArray(Base), 
+                                             /*NullCheckValue=*/false);
     CXXRecordDecl *BaseClassDecl
       = cast<CXXRecordDecl>(Base->getType()->getAs<RecordType>()->getDecl());
-    EmitClassCopyAssignment(ThisPtr, SrcPtr, ClassDecl, BaseClassDecl);
+    EmitClassCopyAssignment(Dest, Src, 0, BaseClassDecl);
   }
 
   for (CXXRecordDecl::field_iterator Field = ClassDecl->field_begin(),