]> granicus.if.org Git - clang/commitdiff
Simplify RTTIBuilder::finish.
authorAnders Carlsson <andersca@mac.com>
Thu, 17 Dec 2009 05:10:59 +0000 (05:10 +0000)
committerAnders Carlsson <andersca@mac.com>
Thu, 17 Dec 2009 05:10:59 +0000 (05:10 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91585 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/CGRTTI.cpp

index d8c718c7c60b409467920521d19d75d4c4889fb0..6471eaa824fecc5bd36d37b7d4ab420f43debb94 100644 (file)
@@ -188,12 +188,12 @@ public:
     return true;
   }
 
-  llvm::Constant *finish(llvm::Constant *const *Values, unsigned NumValues,
-                         llvm::GlobalVariable *GV,
+  llvm::Constant *finish(llvm::GlobalVariable *GV,
                          llvm::StringRef Name, bool Hidden, 
                          llvm::GlobalVariable::LinkageTypes Linkage) {
     llvm::Constant *C = 
-      llvm::ConstantStruct::get(VMContext, Values, NumValues, /*Packed=*/false);
+      llvm::ConstantStruct::get(VMContext, &Info[0], Info.size(), 
+                                /*Packed=*/false);
 
     llvm::GlobalVariable *OGV = GV;
     GV = new llvm::GlobalVariable(CGM.getModule(), C->getType(), true, Linkage,
@@ -277,7 +277,7 @@ public:
       }
     }
 
-    return finish(&Info[0], Info.size(), GV, Name, Hidden, Linkage);
+    return finish(GV, Name, Hidden, Linkage);
   }
 
   /// - BuildFlags - Build a __flags value for __pbase_type_info.
@@ -371,8 +371,7 @@ public:
                                             QualType(PtrMemTy->getClass(), 0)));
 
     // We always generate these as hidden, only the name isn't hidden.
-    return finish(&Info[0], Info.size(), GV, Name, /*Hidden=*/true, 
-                  GetLinkageFromExternFlag(Extern));
+    return finish(GV, Name, /*Hidden=*/true, GetLinkageFromExternFlag(Extern));
   }
 
   llvm::Constant *BuildSimpleType(QualType Ty, const char *vtbl) {
@@ -388,13 +387,12 @@ public:
     bool Extern = DecideExtern(Ty);
     bool Hidden = DecideHidden(Ty);
 
-    llvm::Constant *Info[] = {
-      BuildVtableRef(vtbl), BuildName(Ty, Hidden, Extern)
-    };
+    Info.push_back(BuildVtableRef(vtbl));
+    Info.push_back(BuildName(Ty, Hidden, Extern));
     
     // We always generate these as hidden, only the name isn't hidden.
-    return finish(&Info[0], llvm::array_lengthof(Info), GV, Name, 
-                  /*Hidden=*/true, GetLinkageFromExternFlag(Extern));
+    return finish(GV, Name, /*Hidden=*/true, 
+                  GetLinkageFromExternFlag(Extern));
   }
 
   /// BuildType - Builds the type info for the given type.