aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2013-04-13 01:28:18 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2013-04-13 01:28:18 +0000
commit84083b74abc4a2d1a9013ce4c75d63ee7d6d1da3 (patch)
tree88b711c4cd324605e37200712ab5e263113f9e49 /lib/CodeGen
parent175c8e2e57befe2db15dd339ab5eb27d0c2b6013 (diff)
Use MapVector rather than simulating it.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179438 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen')
-rw-r--r--lib/CodeGen/CodeGenModule.cpp10
-rw-r--r--lib/CodeGen/CodeGenModule.h5
2 files changed, 7 insertions, 8 deletions
diff --git a/lib/CodeGen/CodeGenModule.cpp b/lib/CodeGen/CodeGenModule.cpp
index 4126bea295..aacabc7867 100644
--- a/lib/CodeGen/CodeGenModule.cpp
+++ b/lib/CodeGen/CodeGenModule.cpp
@@ -1748,8 +1748,6 @@ void CodeGenModule::MaybeHandleStaticInExternC(const SomeDecl *D,
// in extern "C" regions, none of them gets that name.
if (!R.second)
R.first->second = 0;
- else
- StaticExternCIdents.push_back(D->getIdentifier());
}
void CodeGenModule::EmitGlobalVarDefinition(const VarDecl *D) {
@@ -2958,9 +2956,11 @@ static void EmitGlobalDeclMetadata(CodeGenModule &CGM,
/// to such functions with an unmangled name from inline assembly within the
/// same translation unit.
void CodeGenModule::EmitStaticExternCAliases() {
- for (unsigned I = 0, N = StaticExternCIdents.size(); I != N; ++I) {
- IdentifierInfo *Name = StaticExternCIdents[I];
- llvm::GlobalValue *Val = StaticExternCValues[Name];
+ for (StaticExternCMap::iterator I = StaticExternCValues.begin(),
+ E = StaticExternCValues.end();
+ I != E; ++I) {
+ IdentifierInfo *Name = I->first;
+ llvm::GlobalValue *Val = I->second;
if (Val && !getModule().getNamedValue(Name->getName()))
AddUsedGlobal(new llvm::GlobalAlias(Val->getType(), Val->getLinkage(),
Name->getName(), Val, &getModule()));
diff --git a/lib/CodeGen/CodeGenModule.h b/lib/CodeGen/CodeGenModule.h
index f8b09711f7..1eb0ebb624 100644
--- a/lib/CodeGen/CodeGenModule.h
+++ b/lib/CodeGen/CodeGenModule.h
@@ -307,10 +307,9 @@ class CodeGenModule : public CodeGenTypeCache {
/// Map used to track internal linkage functions declared within
/// extern "C" regions.
- typedef llvm::DenseMap<IdentifierInfo *,
- llvm::GlobalValue *> StaticExternCMap;
+ typedef llvm::MapVector<IdentifierInfo *,
+ llvm::GlobalValue *> StaticExternCMap;
StaticExternCMap StaticExternCValues;
- std::vector<IdentifierInfo*> StaticExternCIdents;
/// CXXGlobalInits - Global variables with initializers that need to run
/// before main.