]> granicus.if.org Git - clang/commitdiff
Move BaseInfo outside of the EmptySubobject class.
authorAnders Carlsson <andersca@mac.com>
Fri, 28 May 2010 21:13:31 +0000 (21:13 +0000)
committerAnders Carlsson <andersca@mac.com>
Fri, 28 May 2010 21:13:31 +0000 (21:13 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105002 91177308-0d34-0410-b5e6-96231b3b80d8

lib/AST/RecordLayoutBuilder.cpp

index 0ede4bce20de3964a7b815fe42e86215574cbd1a..a2cf28d1fb6fb88d14024f1b190f401aa4d96c86 100644 (file)
@@ -23,6 +23,16 @@ using namespace clang;
 
 namespace {
 
+struct BaseInfo {
+  const CXXRecordDecl *Class;
+  bool IsVirtual;
+
+  const CXXRecordDecl *PrimaryVirtualBase;
+    
+  llvm::SmallVector<BaseInfo*, 4> Bases;
+  const BaseInfo *Derived;
+};
+
 /// EmptySubobjectMap - Keeps track of which empty subobjects exist at different
 /// offsets while laying out a C++ class.
 class EmptySubobjectMap {
@@ -40,16 +50,6 @@ class EmptySubobjectMap {
   /// member subobject that is empty.
   void ComputeEmptySubobjectSizes();
 
-  struct BaseInfo {
-    const CXXRecordDecl *Class;
-    bool IsVirtual;
-
-    const CXXRecordDecl *PrimaryVirtualBase;
-    
-    llvm::SmallVector<BaseInfo*, 4> Bases;
-    const BaseInfo *Derived;
-  };
-  
   llvm::DenseMap<const CXXRecordDecl *, BaseInfo *> VirtualBaseInfo;
   llvm::DenseMap<const CXXRecordDecl *, BaseInfo *> NonVirtualBaseInfo;
   
@@ -148,9 +148,9 @@ void EmptySubobjectMap::ComputeEmptySubobjectSizes() {
   }
 }
 
-EmptySubobjectMap::BaseInfo *
-EmptySubobjectMap::ComputeBaseInfo(const CXXRecordDecl *RD, bool IsVirtual,
-                                   const BaseInfo *Derived) {
+BaseInfo *EmptySubobjectMap::ComputeBaseInfo(const CXXRecordDecl *RD, 
+                                             bool IsVirtual,
+                                             const BaseInfo *Derived) {
   BaseInfo *Info;
   
   if (IsVirtual) {