diff options
author | Aleksandr Urakov <aleksandr.urakov@jetbrains.com> | 2018-11-06 08:02:55 +0000 |
---|---|---|
committer | Aleksandr Urakov <aleksandr.urakov@jetbrains.com> | 2018-11-06 08:02:55 +0000 |
commit | 7ec859446c3fecfefa1c8e8a0785c00b4ca74faf (patch) | |
tree | 50ac266aa5a5fab8b613e1407f8e506e68c89bbc /lldb/unittests | |
parent | aebc4e59778d5f4e53a914c71cedd863e2f123c8 (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.cpp | 9 |
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) { |