summaryrefslogtreecommitdiff
path: root/unittests/Language/CPlusPlus/CPlusPlusLanguageTest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'unittests/Language/CPlusPlus/CPlusPlusLanguageTest.cpp')
-rw-r--r--unittests/Language/CPlusPlus/CPlusPlusLanguageTest.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/unittests/Language/CPlusPlus/CPlusPlusLanguageTest.cpp b/unittests/Language/CPlusPlus/CPlusPlusLanguageTest.cpp
index 7a81b878f633..148359903c17 100644
--- a/unittests/Language/CPlusPlus/CPlusPlusLanguageTest.cpp
+++ b/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) {
@@ -183,4 +190,6 @@ TEST(CPlusPlusLanguage, FindAlternateFunctionManglings) {
EXPECT_THAT(FindAlternate("_ZN1A1fEa"), Contains("_ZN1A1fEc"));
EXPECT_THAT(FindAlternate("_ZN1A1fEx"), Contains("_ZN1A1fEl"));
EXPECT_THAT(FindAlternate("_ZN1A1fEy"), Contains("_ZN1A1fEm"));
+ EXPECT_THAT(FindAlternate("_ZN1A1fEai"), Contains("_ZN1A1fEci"));
+ EXPECT_THAT(FindAlternate("_bogus"), IsEmpty());
}