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; } _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits