From 32ac816fff2fb4137fc9633e459826289ce20481 Mon Sep 17 00:00:00 2001 From: Richard Smith Date: Tue, 1 May 2018 18:50:15 +0000 Subject: [PATCH] Fix bogus MSVC char8_t mangling. 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 | 2 +- clang/test/CodeGenCXX/char8_t.cpp | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/clang/lib/AST/MicrosoftMangle.cpp b/clang/lib/AST/MicrosoftMangle.cpp index f39c1a8e38f2..7b60c14e41eb 100644 --- a/clang/lib/AST/MicrosoftMangle.cpp +++ b/clang/lib/AST/MicrosoftMangle.cpp @@ -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( diff --git a/clang/test/CodeGenCXX/char8_t.cpp b/clang/test/CodeGenCXX/char8_t.cpp index 5aa03830606a..f24f12d6df40 100644 --- a/clang/test/CodeGenCXX/char8_t.cpp +++ b/clang/test/CodeGenCXX/char8_t.cpp @@ -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 void g(decltype(T() + u8"foo" + u8'r')) {} -- 2.34.1