]> granicus.if.org Git - clang/commitdiff
Simplify BuildSimpleType in the RTTBuilder to avoid using an std::vector.
authorAnders Carlsson <andersca@mac.com>
Sun, 13 Dec 2009 23:47:29 +0000 (23:47 +0000)
committerAnders Carlsson <andersca@mac.com>
Sun, 13 Dec 2009 23:47:29 +0000 (23:47 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91255 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/CGRTTI.cpp

index 728d247f6b08e42559f0c53a0035597e09067c8c..02de00e3d7da020af5e346f668ca55b8df95446a 100644 (file)
@@ -375,11 +375,6 @@ public:
   }
 
   llvm::Constant *BuildSimpleType(QualType Ty, const char *vtbl) {
-    std::vector<llvm::Constant *> info;
-    assert(info.empty() && "Info vector must be empty!");
-
-    llvm::Constant *C;
-
     llvm::SmallString<256> OutName;
     CGM.getMangleContext().mangleCXXRTTI(Ty, OutName);
     llvm::StringRef Name = OutName.str();
@@ -392,13 +387,13 @@ public:
     bool Extern = DecideExtern(Ty);
     bool Hidden = DecideHidden(Ty);
 
-    C = BuildVtableRef(vtbl);
-    info.push_back(C);
-    info.push_back(BuildName(Ty, Hidden, Extern));
-
+    llvm::Constant *Info[] = {
+      BuildVtableRef(vtbl), BuildName(Ty, Hidden, Extern)
+    };
+    
     // 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(&Info[0], llvm::array_lengthof(Info), GV, Name, 
+                  /*Hidden=*/true, GetLinkageFromExternFlag(Extern));
   }
 
   /// BuildType - Builds the type info for the given type.