aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen/CGRTTI.cpp
diff options
context:
space:
mode:
authorAnders Carlsson <andersca@mac.com>2009-12-17 05:10:59 +0000
committerAnders Carlsson <andersca@mac.com>2009-12-17 05:10:59 +0000
commitab6faf34259881cbaf0197430831ebac1fb98a34 (patch)
tree90ffaf8a6f60f118d462db39bb293e55296a414c /lib/CodeGen/CGRTTI.cpp
parent234407793b43179f56268fbbb459e5a480df6dc5 (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.cpp20
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.