diff options
author | Anders Carlsson <andersca@mac.com> | 2009-12-17 05:10:59 +0000 |
---|---|---|
committer | Anders Carlsson <andersca@mac.com> | 2009-12-17 05:10:59 +0000 |
commit | ab6faf34259881cbaf0197430831ebac1fb98a34 (patch) | |
tree | 90ffaf8a6f60f118d462db39bb293e55296a414c /lib/CodeGen/CGRTTI.cpp | |
parent | 234407793b43179f56268fbbb459e5a480df6dc5 (diff) |
Simplify RTTIBuilder::finish.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91585 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/CGRTTI.cpp')
-rw-r--r-- | lib/CodeGen/CGRTTI.cpp | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/lib/CodeGen/CGRTTI.cpp b/lib/CodeGen/CGRTTI.cpp index d8c718c7c6..6471eaa824 100644 --- a/lib/CodeGen/CGRTTI.cpp +++ b/lib/CodeGen/CGRTTI.cpp @@ -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. |