[llvm] r361839 - llvm-undname: Support demangling char8_t

Nico Weber via llvm-commits llvm-commits at lists.llvm.org
Tue May 28 08:30:04 PDT 2019


Author: nico
Date: Tue May 28 08:30:04 2019
New Revision: 361839

URL: http://llvm.org/viewvc/llvm-project?rev=361839&view=rev
Log:
llvm-undname: Support demangling char8_t

Ports clang's mangling support added in r354633 to llvm-undname.

Modified:
    llvm/trunk/include/llvm/Demangle/MicrosoftDemangleNodes.h
    llvm/trunk/lib/Demangle/MicrosoftDemangle.cpp
    llvm/trunk/lib/Demangle/MicrosoftDemangleNodes.cpp
    llvm/trunk/test/Demangle/ms-cxx20.test

Modified: llvm/trunk/include/llvm/Demangle/MicrosoftDemangleNodes.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Demangle/MicrosoftDemangleNodes.h?rev=361839&r1=361838&r2=361839&view=diff
==============================================================================
--- llvm/trunk/include/llvm/Demangle/MicrosoftDemangleNodes.h (original)
+++ llvm/trunk/include/llvm/Demangle/MicrosoftDemangleNodes.h Tue May 28 08:30:04 2019
@@ -82,6 +82,7 @@ enum class PrimitiveKind {
   Char,
   Schar,
   Uchar,
+  Char8,
   Char16,
   Char32,
   Short,

Modified: llvm/trunk/lib/Demangle/MicrosoftDemangle.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Demangle/MicrosoftDemangle.cpp?rev=361839&r1=361838&r2=361839&view=diff
==============================================================================
--- llvm/trunk/lib/Demangle/MicrosoftDemangle.cpp (original)
+++ llvm/trunk/lib/Demangle/MicrosoftDemangle.cpp Tue May 28 08:30:04 2019
@@ -1944,6 +1944,8 @@ PrimitiveTypeNode *Demangler::demanglePr
       return Arena.alloc<PrimitiveTypeNode>(PrimitiveKind::Uint64);
     case 'W':
       return Arena.alloc<PrimitiveTypeNode>(PrimitiveKind::Wchar);
+    case 'Q':
+      return Arena.alloc<PrimitiveTypeNode>(PrimitiveKind::Char8);
     case 'S':
       return Arena.alloc<PrimitiveTypeNode>(PrimitiveKind::Char16);
     case 'U':

Modified: llvm/trunk/lib/Demangle/MicrosoftDemangleNodes.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Demangle/MicrosoftDemangleNodes.cpp?rev=361839&r1=361838&r2=361839&view=diff
==============================================================================
--- llvm/trunk/lib/Demangle/MicrosoftDemangleNodes.cpp (original)
+++ llvm/trunk/lib/Demangle/MicrosoftDemangleNodes.cpp Tue May 28 08:30:04 2019
@@ -130,6 +130,7 @@ void PrimitiveTypeNode::outputPre(Output
     OUTPUT_ENUM_CLASS_VALUE(PrimitiveKind, Char, "char");
     OUTPUT_ENUM_CLASS_VALUE(PrimitiveKind, Schar, "signed char");
     OUTPUT_ENUM_CLASS_VALUE(PrimitiveKind, Uchar, "unsigned char");
+    OUTPUT_ENUM_CLASS_VALUE(PrimitiveKind, Char8, "char8_t");
     OUTPUT_ENUM_CLASS_VALUE(PrimitiveKind, Char16, "char16_t");
     OUTPUT_ENUM_CLASS_VALUE(PrimitiveKind, Char32, "char32_t");
     OUTPUT_ENUM_CLASS_VALUE(PrimitiveKind, Short, "short");

Modified: llvm/trunk/test/Demangle/ms-cxx20.test
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Demangle/ms-cxx20.test?rev=361839&r1=361838&r2=361839&view=diff
==============================================================================
--- llvm/trunk/test/Demangle/ms-cxx20.test (original)
+++ llvm/trunk/test/Demangle/ms-cxx20.test Tue May 28 08:30:04 2019
@@ -7,3 +7,6 @@
 
 ??__MS@@QEAA?AVstrong_ordering at std@@AEBU0@@Z'
 ; CHECK: class std::strong_ordering __cdecl S::operator<=>(struct S const &)
+
+?f@@YAX_Q at Z
+; CHECK: void __cdecl f(char8_t)




More information about the llvm-commits mailing list