[cfe-commits] r99791 - /cfe/trunk/lib/CodeGen/CGClass.cpp

Anders Carlsson andersca at mac.com
Sun Mar 28 18:16:41 PDT 2010


Author: andersca
Date: Sun Mar 28 20:16:41 2010
New Revision: 99791

URL: http://llvm.org/viewvc/llvm-project?rev=99791&view=rev
Log:
Fix another thinko, so that flags don't depend on previous bases.

Modified:
    cfe/trunk/lib/CodeGen/CGClass.cpp

Modified: cfe/trunk/lib/CodeGen/CGClass.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGClass.cpp?rev=99791&r1=99790&r2=99791&view=diff
==============================================================================
--- cfe/trunk/lib/CodeGen/CGClass.cpp (original)
+++ cfe/trunk/lib/CodeGen/CGClass.cpp Sun Mar 28 20:16:41 2010
@@ -1645,6 +1645,8 @@
       continue;
 
     uint64_t BaseOffset;
+    bool BaseDeclIsMorallyVirtual = BaseIsMorallyVirtual;
+    bool BaseDeclIsNonVirtualPrimaryBase;
 
     if (I->isVirtual()) {
       // Check if we've visited this virtual base before.
@@ -1654,19 +1656,19 @@
       const ASTRecordLayout &Layout = 
         getContext().getASTRecordLayout(VTableClass);
 
-      BaseIsMorallyVirtual = true;
-      BaseIsNonVirtualPrimaryBase = false;
-      
       BaseOffset = Layout.getVBaseClassOffset(BaseDecl);
+      BaseDeclIsMorallyVirtual = true;
+      BaseDeclIsNonVirtualPrimaryBase = false;
     } else {
       const ASTRecordLayout &Layout = getContext().getASTRecordLayout(RD);
 
       BaseOffset = Base.getBaseOffset() + Layout.getBaseClassOffset(BaseDecl);
-      BaseIsNonVirtualPrimaryBase = Layout.getPrimaryBase() == BaseDecl;
+      BaseDeclIsNonVirtualPrimaryBase = Layout.getPrimaryBase() == BaseDecl;
     }
     
     InitializeVTablePointers(BaseSubobject(BaseDecl, BaseOffset), 
-                             BaseIsMorallyVirtual, BaseIsNonVirtualPrimaryBase, 
+                             BaseDeclIsMorallyVirtual, 
+                             BaseDeclIsNonVirtualPrimaryBase, 
                              VTable, VTableClass, VBases);
   }
 }





More information about the cfe-commits mailing list