Fix bogus MSVC char8_t mangling.
authorRichard Smith <richard-llvm@metafoo.co.uk>
Tue, 1 May 2018 18:50:15 +0000 (18:50 +0000)
committerRichard Smith <richard-llvm@metafoo.co.uk>
Tue, 1 May 2018 18:50:15 +0000 (18:50 +0000)
This appears to have been caused by a bad automatic svn merge with r330225
attaching the 'case' label to the wrong block of code. :(

llvm-svn: 331299

clang/lib/AST/MicrosoftMangle.cpp
clang/test/CodeGenCXX/char8_t.cpp

index f39c1a8e38f2d866c77b035335c13e268b7dbefe..7b60c14e41ebcb449833889fcaf976b8fe4d0437 100644 (file)
@@ -1918,7 +1918,6 @@ void MicrosoftCXXNameMangler::mangleType(const BuiltinType *T, Qualifiers,
     Out << "$$T";
     break;
 
-  case BuiltinType::Char8:
   case BuiltinType::Float16:
     mangleArtificalTagType(TTK_Struct, "_Float16", {"__clang"});
     break;
@@ -1927,6 +1926,7 @@ void MicrosoftCXXNameMangler::mangleType(const BuiltinType *T, Qualifiers,
     mangleArtificalTagType(TTK_Struct, "_Half", {"__clang"});
     break;
 
+  case BuiltinType::Char8:
   case BuiltinType::Float128: {
     DiagnosticsEngine &Diags = Context.getDiags();
     unsigned DiagID = Diags.getCustomDiagID(
index 5aa03830606a8523a9c9818f91f6ba88ed8daa44..f24f12d6df404f907f4da6df6362571422529032 100644 (file)
@@ -1,7 +1,8 @@
 // RUN: %clang_cc1 -std=c++17 -emit-llvm -fchar8_t -triple x86_64-linux %s -o - | FileCheck %s
+// RUN: %clang_cc1 -std=c++17 -emit-llvm -fchar8_t -triple x86_64-windows %s -o - -verify
 
 // CHECK: define void @_Z1fDu(
-void f(char8_t c) {}
+void f(char8_t c) {} // expected-error {{cannot mangle this built-in char8_t type yet}}
 
 // CHECK: define weak_odr void @_Z1gIiEvDTplplcvT__ELA4_KDuELDu114EE
 template<typename T> void g(decltype(T() + u8"foo" + u8'r')) {}