From 84083b74abc4a2d1a9013ce4c75d63ee7d6d1da3 Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Sat, 13 Apr 2013 01:28:18 +0000 Subject: [PATCH] Use MapVector rather than simulating it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179438 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/CodeGen/CodeGenModule.cpp | 10 +++++----- lib/CodeGen/CodeGenModule.h | 5 ++--- 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 StaticExternCMap; + typedef llvm::MapVector StaticExternCMap; StaticExternCMap StaticExternCValues; - std::vector StaticExternCIdents; /// CXXGlobalInits - Global variables with initializers that need to run /// before main. -- 2.40.0