diff options
| author | Erik Pilkington <erik.pilkington@gmail.com> | 2019-06-28 19:54:19 +0000 |
|---|---|---|
| committer | Erik Pilkington <erik.pilkington@gmail.com> | 2019-06-28 19:54:19 +0000 |
| commit | 9a6cef74d8a930baf3c0d9f41780bbef874f11a9 (patch) | |
| tree | d56ca503ff6a80095f6931cd302654abb93a4717 /libcxxabi | |
| parent | 1c6337ca5ab73056f5bd5cfa00b54c4d5e90479e (diff) | |
| download | bcm5719-llvm-9a6cef74d8a930baf3c0d9f41780bbef874f11a9.tar.gz bcm5719-llvm-9a6cef74d8a930baf3c0d9f41780bbef874f11a9.zip | |
[demangle] Support for C++2a char8_t
llvm-svn: 364677
Diffstat (limited to 'libcxxabi')
| -rw-r--r-- | libcxxabi/src/demangle/ItaniumDemangle.h | 4 | ||||
| -rw-r--r-- | libcxxabi/test/test_demangle.pass.cpp | 3 |
2 files changed, 7 insertions, 0 deletions
diff --git a/libcxxabi/src/demangle/ItaniumDemangle.h b/libcxxabi/src/demangle/ItaniumDemangle.h index ad1034f0fba..aaccb27e17a 100644 --- a/libcxxabi/src/demangle/ItaniumDemangle.h +++ b/libcxxabi/src/demangle/ItaniumDemangle.h @@ -3624,6 +3624,10 @@ Node *AbstractManglingParser<Derived, Alloc>::parseType() { case 's': First += 2; return make<NameType>("char16_t"); + // ::= Du # char8_t (C++2a, not yet in the Itanium spec) + case 'u': + First += 2; + return make<NameType>("char8_t"); // ::= Da # auto (in dependent new-expressions) case 'a': First += 2; diff --git a/libcxxabi/test/test_demangle.pass.cpp b/libcxxabi/test/test_demangle.pass.cpp index 761226b16b2..8e41cd97ce1 100644 --- a/libcxxabi/test/test_demangle.pass.cpp +++ b/libcxxabi/test/test_demangle.pass.cpp @@ -29772,6 +29772,9 @@ const char* cases[][2] = {"_ZN3FooIXu8__uuidofzdeL_Z3sucEEEC1Ev", "Foo<__uuidof(*(suc))>::Foo()"}, {"_ZN3FooIXu8__uuidoft13SomeUUIDClassEEC1Ev", "Foo<__uuidof(SomeUUIDClass)>::Foo()"}, + + // C++2a char8_t: + {"_ZTSPDu", "typeinfo name for char8_t*"}, }; const unsigned N = sizeof(cases) / sizeof(cases[0]); |

