aboutsummaryrefslogtreecommitdiff
path: root/lldb/source/Plugins/SymbolFile/PDB
diff options
context:
space:
mode:
authorAdrian Prantl <aprantl@apple.com>2019-08-22 19:24:55 +0000
committerAdrian Prantl <aprantl@apple.com>2019-08-22 19:24:55 +0000
commitaa3a564efa6b5fff2129f81a4041069a0233168f (patch)
tree230811320c2fff1889c8fcfa2d561dac57e6afc9 /lldb/source/Plugins/SymbolFile/PDB
parent6c6dd6acf9e4a9d0599c99abbcbb696ed6b5ab19 (diff)
downloadllvm-aa3a564efa6b5fff2129f81a4041069a0233168f.tar.gz
llvm-aa3a564efa6b5fff2129f81a4041069a0233168f.tar.bz2
llvm-aa3a564efa6b5fff2129f81a4041069a0233168f.zip
Extend FindTypes with CompilerContext to allow filtering by language.
This patch is also motivated by the Swift branch and is effectively NFC for the single-TypeSystem llvm.org branch. In multi-language projects it is extremely common to have, e.g., a Clang type and a similarly-named rendition of that same type in another language. When searching for a type It is much cheaper to pass a set of supported languages to the SymbolFile than having it materialize every result and then rejecting the materialized types that have the wrong language. Differential Revision: https://reviews.llvm.org/D66546 <rdar://problem/54471165> llvm-svn: 369690
Diffstat (limited to 'lldb/source/Plugins/SymbolFile/PDB')
-rw-r--r--lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.cpp5
-rw-r--r--lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.h3
2 files changed, 6 insertions, 2 deletions
diff --git a/lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.cpp b/lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.cpp
index 51b84c4cae69..efd3b0cc9401 100644
--- a/lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.cpp
+++ b/lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.cpp
@@ -1585,7 +1585,10 @@ void SymbolFilePDB::FindTypesByName(
}
size_t SymbolFilePDB::FindTypes(llvm::ArrayRef<CompilerContext> pattern,
- bool append, lldb_private::TypeMap &types) {
+ LanguageSet languages, bool append,
+ lldb_private::TypeMap &types) {
+ if (!append)
+ types.Clear();
return 0;
}
diff --git a/lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.h b/lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.h
index 15eed0f9f6cc..a360a18ae262 100644
--- a/lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.h
+++ b/lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.h
@@ -133,7 +133,8 @@ public:
lldb_private::TypeMap &types) override;
size_t FindTypes(llvm::ArrayRef<lldb_private::CompilerContext> pattern,
- bool append, lldb_private::TypeMap &types) override;
+ lldb_private::LanguageSet languages, bool append,
+ lldb_private::TypeMap &types) override;
void FindTypesByRegex(const lldb_private::RegularExpression &regex,
uint32_t max_matches, lldb_private::TypeMap &types);