aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen/CGRTTI.cpp
diff options
context:
space:
mode:
authorAnders Carlsson <andersca@mac.com>2009-12-13 16:38:01 +0000
committerAnders Carlsson <andersca@mac.com>2009-12-13 16:38:01 +0000
commit5ba7d2156f5b3f7b078b33fa9cd264762bc6779b (patch)
treee8a286afadf3a05e047a12eb47b39698177bd55e /lib/CodeGen/CGRTTI.cpp
parent869824e87940f97b87064db2df2861e82e08a8c6 (diff)
Change the RTTIBuilder's finish member function to take a pointer to the constants array + the length of the array.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91241 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/CGRTTI.cpp')
-rw-r--r--lib/CodeGen/CGRTTI.cpp12
1 files changed, 5 insertions, 7 deletions
diff --git a/lib/CodeGen/CGRTTI.cpp b/lib/CodeGen/CGRTTI.cpp
index a15ba4f215..728d247f6b 100644
--- a/lib/CodeGen/CGRTTI.cpp
+++ b/lib/CodeGen/CGRTTI.cpp
@@ -25,7 +25,6 @@ class RTTIBuilder {
llvm::SmallSet<const CXXRecordDecl *, 16> SeenVBase;
llvm::SmallSet<const CXXRecordDecl *, 32> SeenBase;
-
// Type info flags.
enum {
/// TI_Const - Type has const qualifier.
@@ -187,13 +186,12 @@ public:
return true;
}
- llvm::Constant *finish(std::vector<llvm::Constant *> &info,
+ llvm::Constant *finish(llvm::Constant *const *Values, unsigned NumValues,
llvm::GlobalVariable *GV,
llvm::StringRef Name, bool Hidden,
llvm::GlobalVariable::LinkageTypes Linkage) {
llvm::Constant *C =
- llvm::ConstantStruct::get(VMContext, &info[0], info.size(),
- /*Packed=*/false);
+ llvm::ConstantStruct::get(VMContext, Values, NumValues, /*Packed=*/false);
llvm::GlobalVariable *OGV = GV;
GV = new llvm::GlobalVariable(CGM.getModule(), C->getType(), true, Linkage,
@@ -278,7 +276,7 @@ public:
}
}
- return finish(info, GV, Name, Hidden, Linkage);
+ return finish(&info[0], info.size(), GV, Name, Hidden, Linkage);
}
/// - BuildFlags - Build a __flags value for __pbase_type_info.
@@ -372,7 +370,7 @@ public:
info.push_back(BuildType(QualType(PtrMemTy->getClass(), 0)));
// We always generate these as hidden, only the name isn't hidden.
- return finish(info, GV, Name, /*Hidden=*/true,
+ return finish(&info[0], info.size(), GV, Name, /*Hidden=*/true,
GetLinkageFromExternFlag(Extern));
}
@@ -399,7 +397,7 @@ public:
info.push_back(BuildName(Ty, Hidden, Extern));
// We always generate these as hidden, only the name isn't hidden.
- return finish(info, GV, Name, /*Hidden=*/true,
+ return finish(&info[0], info.size(), GV, Name, /*Hidden=*/true,
GetLinkageFromExternFlag(Extern));
}