From: David Majnemer Date: Sat, 1 Aug 2015 05:51:55 +0000 (+0000) Subject: [MS ABI] Create a mangling for extended vector types X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=133cbf204c5b6a927fca47a70e82dcd488c5f68f;p=clang [MS ABI] Create a mangling for extended vector types Extended vector types are mangled just like normal vector types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@243828 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/AST/MicrosoftMangle.cpp b/lib/AST/MicrosoftMangle.cpp index 48a8fa541a..5c2b68cd62 100644 --- a/lib/AST/MicrosoftMangle.cpp +++ b/lib/AST/MicrosoftMangle.cpp @@ -2076,13 +2076,9 @@ void MicrosoftCXXNameMangler::mangleType(const VectorType *T, Qualifiers Quals, Out << "@@"; } -void MicrosoftCXXNameMangler::mangleType(const ExtVectorType *T, Qualifiers, - SourceRange Range) { - DiagnosticsEngine &Diags = Context.getDiags(); - unsigned DiagID = Diags.getCustomDiagID(DiagnosticsEngine::Error, - "cannot mangle this extended vector type yet"); - Diags.Report(Range.getBegin(), DiagID) - << Range; +void MicrosoftCXXNameMangler::mangleType(const ExtVectorType *T, + Qualifiers Quals, SourceRange Range) { + mangleType(static_cast(T), Quals, Range); } void MicrosoftCXXNameMangler::mangleType(const DependentSizedExtVectorType *T, Qualifiers, SourceRange Range) { diff --git a/test/CodeGenCXX/mangle-ms-vector-types.cpp b/test/CodeGenCXX/mangle-ms-vector-types.cpp index aca492918a..5aca4551ce 100644 --- a/test/CodeGenCXX/mangle-ms-vector-types.cpp +++ b/test/CodeGenCXX/mangle-ms-vector-types.cpp @@ -29,5 +29,9 @@ void foo256i(__m256i) {} void foov8hi(__v8hi) {} // CHECK: define void @"\01?foov8hi@@YAXT__clang_vec8_F@@@Z" +typedef __attribute__((ext_vector_type(4))) int vi4b; +void foovi4b(vi4b) {} +// CHECK: define void @"\01?foovi4b@@YAXT__clang_vec4_H@@@Z" + // Clang does not support vectors of complex types, so we can't test the // mangling of them.