]> granicus.if.org Git - clang/commitdiff
Enable the new vtable layout code for vtables that aren't construction vtables. ...
authorAnders Carlsson <andersca@mac.com>
Sat, 27 Feb 2010 20:02:53 +0000 (20:02 +0000)
committerAnders Carlsson <andersca@mac.com>
Sat, 27 Feb 2010 20:02:53 +0000 (20:02 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97341 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/CGVtable.cpp

index 1bf071c85d5673846e5306bd91408cba1aeb3b78..af1db88221948f42207c1ad4d1d5b94a30d9ab33 100644 (file)
@@ -178,6 +178,8 @@ public:
   void dump(llvm::raw_ostream &Out, BaseSubobject Base);
 };
 
+#define DUMP_OVERRIDERS 0
+
 FinalOverriders::FinalOverriders(const CXXRecordDecl *MostDerivedClass)
   : MostDerivedClass(MostDerivedClass), 
   Context(MostDerivedClass->getASTContext()),
@@ -188,7 +190,8 @@ FinalOverriders::FinalOverriders(const CXXRecordDecl *MostDerivedClass)
   ComputeFinalOverriders(BaseSubobject(MostDerivedClass, 0), 
                          /*BaseSubobjectIsVisitedVBase=*/false, Offsets);
   VisitedVirtualBases.clear();
-    
+
+#if DUMP_OVERRIDERS
   // And dump them (for now).
   dump();
     
@@ -203,6 +206,7 @@ FinalOverriders::FinalOverriders(const CXXRecordDecl *MostDerivedClass)
     for (unsigned I = 0, E = OffsetVector.size(); I != E; ++I)
       llvm::errs() << "  " << I << " - " << OffsetVector[I] << '\n';
   }
+#endif
 }
 
 void FinalOverriders::AddOverriders(BaseSubobject Base,
@@ -3268,11 +3272,11 @@ CGVtableInfo::GenerateVtable(llvm::GlobalVariable::LinkageTypes Linkage,
                              const CXXRecordDecl *LayoutClass,
                              const CXXRecordDecl *RD, uint64_t Offset,
                              AddressPointsMapTy& AddressPoints) {
-  if (GenerateDefinition && CGM.getLangOptions().DumpVtableLayouts && 
-      LayoutClass == RD) {
+  if (GenerateDefinition && LayoutClass == RD) {
     VtableBuilder Builder(*this, RD);
-    
-    Builder.dumpLayout(llvm::errs());
+
+    if (CGM.getLangOptions().DumpVtableLayouts)
+      Builder.dumpLayout(llvm::errs());
   }
 
   llvm::SmallString<256> OutName;