summaryrefslogtreecommitdiff
path: root/lldb/unittests
diff options
context:
space:
mode:
authorAleksandr Urakov <aleksandr.urakov@jetbrains.com>2018-11-06 08:02:55 +0000
committerAleksandr Urakov <aleksandr.urakov@jetbrains.com>2018-11-06 08:02:55 +0000
commit7ec859446c3fecfefa1c8e8a0785c00b4ca74faf (patch)
tree50ac266aa5a5fab8b613e1407f8e506e68c89bbc /lldb/unittests
parentaebc4e59778d5f4e53a914c71cedd863e2f123c8 (diff)
[PDB] Introduce `MSVCUndecoratedNameParser`
This patch introduces the simple MSVCUndecoratedNameParser. It is needed for parsing names of PDB symbols corresponding to template instantiations. For example, for the name `operator<<A>'::`2'::B::operator> we can't just split the name with :: (as it is implemented for now) to retrieve its scopes. This parser processes such names in a more correct way. Differential Revision: https://reviews.llvm.org/D52461
Diffstat (limited to 'lldb/unittests')
-rw-r--r--lldb/unittests/Language/CPlusPlus/CPlusPlusLanguageTest.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/lldb/unittests/Language/CPlusPlus/CPlusPlusLanguageTest.cpp b/lldb/unittests/Language/CPlusPlus/CPlusPlusLanguageTest.cpp
index 81d3ac51fd9..ed9b6b08b76 100644
--- a/lldb/unittests/Language/CPlusPlus/CPlusPlusLanguageTest.cpp
+++ b/lldb/unittests/Language/CPlusPlus/CPlusPlusLanguageTest.cpp
@@ -138,7 +138,14 @@ TEST(CPlusPlusLanguage, ExtractContextAndIdentifier) {
{"std::vector<Class, std::allocator<Class>>"
"::_M_emplace_back_aux<Class const&>",
"std::vector<Class, std::allocator<Class>>",
- "_M_emplace_back_aux<Class const&>"}};
+ "_M_emplace_back_aux<Class const&>"},
+ {"`anonymous namespace'::foo", "`anonymous namespace'", "foo"},
+ {"`operator<<A>'::`2'::B<0>::operator>",
+ "`operator<<A>'::`2'::B<0>",
+ "operator>"},
+ {"`anonymous namespace'::S::<<::__l2::Foo",
+ "`anonymous namespace'::S::<<::__l2",
+ "Foo"}};
llvm::StringRef context, basename;
for (const auto &test : test_cases) {