diff options
Diffstat (limited to 'lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp')
-rw-r--r-- | lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp index ba63b41a581..6b357c249ce 100644 --- a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp +++ b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp @@ -2485,7 +2485,8 @@ uint32_t SymbolFileDWARF::FindTypes( } size_t SymbolFileDWARF::FindTypes(llvm::ArrayRef<CompilerContext> pattern, - bool append, TypeMap &types) { + LanguageSet languages, bool append, + TypeMap &types) { std::lock_guard<std::recursive_mutex> guard(GetModuleMutex()); if (!append) types.Clear(); @@ -2508,6 +2509,9 @@ size_t SymbolFileDWARF::FindTypes(llvm::ArrayRef<CompilerContext> pattern, DWARFDIE die = GetDIE(die_ref); if (die) { + if (!languages[die.GetCU()->GetLanguageType()]) + continue; + llvm::SmallVector<CompilerContext, 4> die_context; die.GetDeclContext(die_context); if (!contextMatches(die_context, pattern)) |