[demangle] Support for C++2a char8_t

llvm-svn: 364677
This commit is contained in:
Erik Pilkington 2019-06-28 19:54:19 +00:00
parent 1c6337ca5a
commit 9a6cef74d8
3 changed files with 11 additions and 0 deletions

View File

@ -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;

View File

@ -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]);

View File

@ -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;