From: Zachary Turner Date: Tue, 2 Apr 2019 19:39:45 +0000 (+0000) Subject: [NativePDB] Don't fail on import modules. X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a31347f17d1f03d01845e7d433d24dedd3dec8e0;p=platform%2Fupstream%2Fllvm.git [NativePDB] Don't fail on import modules. A recent patch to LLD started emitting information about import modules. These are represented as compile units in the PDB, but with no additional debug info. This was confusing the native pdb reader, who expected that the debug info stream be present. This should fix failing tests on the Windows bots. llvm-svn: 357513 --- diff --git a/lldb/source/Plugins/SymbolFile/NativePDB/CompileUnitIndex.cpp b/lldb/source/Plugins/SymbolFile/NativePDB/CompileUnitIndex.cpp index c8e5303..1838204 100644 --- a/lldb/source/Plugins/SymbolFile/NativePDB/CompileUnitIndex.cpp +++ b/lldb/source/Plugins/SymbolFile/NativePDB/CompileUnitIndex.cpp @@ -124,11 +124,20 @@ CompilandIndexItem &CompileUnitIndex::GetOrCreateCompiland(uint16_t modi) { uint16_t stream = descriptor.getModuleStreamIndex(); std::unique_ptr stream_data = m_index.pdb().createIndexedStream(stream); + + + std::unique_ptr& cci = result.first->second; + + if (!stream_data) { + llvm::pdb::ModuleDebugStreamRef debug_stream(descriptor, nullptr); + cci = llvm::make_unique(PdbCompilandId{ modi }, debug_stream, std::move(descriptor)); + return *cci; + } + llvm::pdb::ModuleDebugStreamRef debug_stream(descriptor, std::move(stream_data)); - cantFail(debug_stream.reload()); - std::unique_ptr &cci = result.first->second; + cantFail(debug_stream.reload()); cci = llvm::make_unique( PdbCompilandId{modi}, std::move(debug_stream), std::move(descriptor));