diff options
author | Anna Zaks <ganna@apple.com> | 2016-04-15 23:51:00 +0000 |
---|---|---|
committer | Anna Zaks <ganna@apple.com> | 2016-04-15 23:51:00 +0000 |
commit | dbd8ad5660c8f1be976ecf8f890941b2b7d3b491 (patch) | |
tree | e03ecc7c4f3e0c847ab1c93ae439ebabb795ddbc /lib/sanitizer_common/tests | |
parent | 8a1d9382c96afd861a30330f85e0b068bc4c8441 (diff) |
[sanitizers] Teach the internal demangler about Swift names
Add support for Swift names when symbolicating sanitizer traces. This is
now relevant since TSan and ASan support have been added to Swift on OS X.
Differential Revision: http://reviews.llvm.org/D19135
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@266494 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/sanitizer_common/tests')
-rw-r--r-- | lib/sanitizer_common/tests/sanitizer_symbolizer_test.cc | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/lib/sanitizer_common/tests/sanitizer_symbolizer_test.cc b/lib/sanitizer_common/tests/sanitizer_symbolizer_test.cc index 429ac591e..8ff8bbb6c 100644 --- a/lib/sanitizer_common/tests/sanitizer_symbolizer_test.cc +++ b/lib/sanitizer_common/tests/sanitizer_symbolizer_test.cc @@ -55,4 +55,14 @@ TEST(Symbolizer, ExtractTokenUpToDelimiter) { InternalFree(token); } +TEST(Symbolizer, DemangleSwiftAndCXX) { + // Swift names are not demangled in default llvm build because Swift + // runtime is not linked in. + EXPECT_STREQ("_TtSd", DemangleSwiftAndCXX("_TtSd")); + // Check that the rest demangles properly. + EXPECT_STREQ("f1(char*, int)", DemangleSwiftAndCXX("_Z2f1Pci")); + EXPECT_STREQ("foo", DemangleSwiftAndCXX("foo")); + EXPECT_STREQ("", DemangleSwiftAndCXX("")); +} + } // namespace __sanitizer |