diff --git a/llvm/lib/DebugInfo/PDB/Native/NativeSession.cpp b/llvm/lib/DebugInfo/PDB/Native/NativeSession.cpp index 49674b4c32de0..cfa3328f5f2d6 100644 --- a/llvm/lib/DebugInfo/PDB/Native/NativeSession.cpp +++ b/llvm/lib/DebugInfo/PDB/Native/NativeSession.cpp @@ -410,20 +410,16 @@ uint64_t NativeSession::getVAFromSectOffset(uint32_t Section, bool NativeSession::moduleIndexForVA(uint64_t VA, uint16_t &ModuleIndex) const { ModuleIndex = 0; auto Iter = AddrToModuleIndex.find(VA); - if (Iter == AddrToModuleIndex.end()) - return false; - ModuleIndex = Iter.value(); - return true; + if (Iter.valid() && !IMap::KeyTraits::startLess(VA, Iter.start())) { + ModuleIndex = Iter.value(); + return true; + } + return false; } bool NativeSession::moduleIndexForSectOffset(uint32_t Sect, uint32_t Offset, uint16_t &ModuleIndex) const { - ModuleIndex = 0; - auto Iter = AddrToModuleIndex.find(getVAFromSectOffset(Sect, Offset)); - if (Iter == AddrToModuleIndex.end()) - return false; - ModuleIndex = Iter.value(); - return true; + return moduleIndexForVA(getVAFromSectOffset(Sect, Offset), ModuleIndex); } void NativeSession::parseSectionContribs() {