From 5dbef929323a180a8e56c34c473238835c500c79 Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Wed, 22 Apr 2015 02:09:43 +0000 Subject: [modules] Cope with partial module macro information, fix memory leak found by buildbot. llvm-svn: 235464 --- clang/lib/Serialization/ASTReader.cpp | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'clang/lib/Serialization') diff --git a/clang/lib/Serialization/ASTReader.cpp b/clang/lib/Serialization/ASTReader.cpp index 0e45a2f6fa7..1ea30f95977 100644 --- a/clang/lib/Serialization/ASTReader.cpp +++ b/clang/lib/Serialization/ASTReader.cpp @@ -1804,19 +1804,17 @@ void ASTReader::resolvePendingMacro(IdentifierInfo *II, // Module macros are listed in reverse dependency order. { std::reverse(ModuleMacros.begin(), ModuleMacros.end()); - llvm::SmallDenseMap Macros; llvm::SmallVector Overrides; for (auto &MMI : ModuleMacros) { Overrides.clear(); for (unsigned ModID : MMI.Overrides) { - auto *Macro = Macros.lookup(ModID); + auto *Macro = PP.getModuleMacro(ModID, II); assert(Macro && "missing definition for overridden macro"); - Overrides.push_back(Macros.lookup(ModID)); + Overrides.push_back(Macro); } bool Inserted = false; - Macros[MMI.SubModID] = - PP.addModuleMacro(MMI.SubModID, II, MMI.MI, Overrides, Inserted); + PP.addModuleMacro(MMI.SubModID, II, MMI.MI, Overrides, Inserted); if (!Inserted) continue; @@ -1825,7 +1823,7 @@ void ASTReader::resolvePendingMacro(IdentifierInfo *II, // Macros in the owning module are hidden. Just remember this macro to // install if we make this module visible. HiddenNamesMap[Owner].HiddenMacros.insert( - std::make_pair(II, new ModuleMacroInfo(MMI))); + std::make_pair(II, new (Context) ModuleMacroInfo(MMI))); } else { installImportedMacro(II, MMI, Owner); } -- cgit v1.2.3