r248826 - CGDebugInfo: Don't reuse a reference into a DenseMap if the DenseMap may
Adrian Prantl via cfe-commits
cfe-commits at lists.llvm.org
Tue Sep 29 13:44:46 PDT 2015
Author: adrian
Date: Tue Sep 29 15:44:46 2015
New Revision: 248826
URL: http://llvm.org/viewvc/llvm-project?rev=248826&view=rev
Log:
CGDebugInfo: Don't reuse a reference into a DenseMap if the DenseMap may
be modified in between. (NFC)
Modified:
cfe/trunk/lib/CodeGen/CGDebugInfo.cpp
Modified: cfe/trunk/lib/CodeGen/CGDebugInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGDebugInfo.cpp?rev=248826&r1=248825&r2=248826&view=diff
==============================================================================
--- cfe/trunk/lib/CodeGen/CGDebugInfo.cpp (original)
+++ cfe/trunk/lib/CodeGen/CGDebugInfo.cpp Tue Sep 29 15:44:46 2015
@@ -1680,9 +1680,9 @@ CGDebugInfo::getOrCreateModuleRef(Extern
// nullptr if the "Module" is a PCH, which is safe because we don't
// support chained PCH debug info, so there can only be a single PCH.
const Module *M = Mod.getModuleOrNull();
- auto &ModRef = ModuleCache[M];
- if (ModRef)
- return cast<llvm::DIModule>(ModRef);
+ auto ModRef = ModuleCache.find(M);
+ if (ModRef != ModuleCache.end())
+ return cast<llvm::DIModule>(ModRef->second);
// Macro definitions that were defined with "-D" on the command line.
SmallString<128> ConfigMacros;
@@ -1724,7 +1724,7 @@ CGDebugInfo::getOrCreateModuleRef(Extern
llvm::DIModule *DIMod =
DBuilder.createModule(Parent, Mod.getModuleName(), ConfigMacros,
Mod.getPath(), CGM.getHeaderSearchOpts().Sysroot);
- ModRef.reset(DIMod);
+ ModuleCache[M].reset(DIMod);
return DIMod;
}
More information about the cfe-commits
mailing list