diff options
Diffstat (limited to 'llvm/unittests/Support/ItaniumManglingCanonicalizerTest.cpp')
-rw-r--r-- | llvm/unittests/Support/ItaniumManglingCanonicalizerTest.cpp | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/llvm/unittests/Support/ItaniumManglingCanonicalizerTest.cpp b/llvm/unittests/Support/ItaniumManglingCanonicalizerTest.cpp index 91432899d14..b20cdcf340b 100644 --- a/llvm/unittests/Support/ItaniumManglingCanonicalizerTest.cpp +++ b/llvm/unittests/Support/ItaniumManglingCanonicalizerTest.cpp @@ -249,6 +249,19 @@ static std::vector<Testcase> getTestcases() { {"_Z1fRA1_i"}, {"_Z1fRA_f"}, } }, + + // Unmangled names can be remapped as complete encodings. + { + { + {FragmentKind::Encoding, "3foo", "3bar"}, + }, + { + // foo == bar + {"foo", "bar"}, + // void f<foo>() == void f<bar>() + {"_Z1fIL_Z3fooEEvv", "_Z1fIL_Z3barEEvv"}, + } + }, }; } @@ -343,7 +356,7 @@ TEST(ItaniumManglingCanonicalizerTest, TestInvalidManglings) { EquivalenceError::InvalidSecondMangling); EXPECT_EQ(Canonicalizer.canonicalize("_Z3fooE"), llvm::ItaniumManglingCanonicalizer::Key()); - EXPECT_EQ(Canonicalizer.canonicalize("foo"), + EXPECT_EQ(Canonicalizer.canonicalize("_Zfoo"), llvm::ItaniumManglingCanonicalizer::Key()); // A reference to a template parameter ('T_' etc) cannot appear in a <name>, |