On Wed, Feb 7, 2018 at 8:01 AM, Saleem Abdulrasool via cfe-commits <cfe-commits@lists.llvm.org> wrote: > On Tue, Feb 6, 2018 at 5:55 PM, Saleem Abdulrasool via cfe-commits > <cfe-commits@lists.llvm.org> wrote: >> >> Author: compnerd >> Date: Tue Feb 6 17:55:08 2018 >> New Revision: 324439 >> >> URL: http://llvm.org/viewvc/llvm-project?rev=324439&view=rev >> Log: >> AST: support SwiftCC on MS ABI >> >> Microsoft has reserved the identifier 'S' as the swift calling >> convention. Decorate the symbols appropriately. This enables swift on >> Windows. > > > Hans, thoughts on getting this into 6.0? This is needed to enable swift on > Windows.
Sure, why not. r324460. > >> >> Added: >> cfe/trunk/test/CodeGenCXX/msabi-swiftcall-cc.cpp >> Modified: >> cfe/trunk/lib/AST/MicrosoftMangle.cpp >> >> Modified: cfe/trunk/lib/AST/MicrosoftMangle.cpp >> URL: >> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/MicrosoftMangle.cpp?rev=324439&r1=324438&r2=324439&view=diff >> >> ============================================================================== >> --- cfe/trunk/lib/AST/MicrosoftMangle.cpp (original) >> +++ cfe/trunk/lib/AST/MicrosoftMangle.cpp Tue Feb 6 17:55:08 2018 >> @@ -950,11 +950,10 @@ void MicrosoftCXXNameMangler::mangleUnqu >> } >> } >> >> +// <postfix> ::= <unqualified-name> [<postfix>] >> +// ::= <substitution> [<postfix>] >> void MicrosoftCXXNameMangler::mangleNestedName(const NamedDecl *ND) { >> - // <postfix> ::= <unqualified-name> [<postfix>] >> - // ::= <substitution> [<postfix>] >> const DeclContext *DC = getEffectiveDeclContext(ND); >> - >> while (!DC->isTranslationUnit()) { >> if (isa<TagDecl>(ND) || isa<VarDecl>(ND)) { >> unsigned Disc; >> @@ -2136,6 +2135,7 @@ void MicrosoftCXXNameMangler::mangleCall >> case CC_X86StdCall: Out << 'G'; break; >> case CC_X86FastCall: Out << 'I'; break; >> case CC_X86VectorCall: Out << 'Q'; break; >> + case CC_Swift: Out << 'S'; break; >> case CC_X86RegCall: Out << 'w'; break; >> } >> } >> >> Added: cfe/trunk/test/CodeGenCXX/msabi-swiftcall-cc.cpp >> URL: >> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/msabi-swiftcall-cc.cpp?rev=324439&view=auto >> >> ============================================================================== >> --- cfe/trunk/test/CodeGenCXX/msabi-swiftcall-cc.cpp (added) >> +++ cfe/trunk/test/CodeGenCXX/msabi-swiftcall-cc.cpp Tue Feb 6 17:55:08 >> 2018 >> @@ -0,0 +1,28 @@ >> +// RUN: %clang_cc1 -triple i686-unknown-windows-msvc -fdeclspec >> -emit-llvm %s -o - | FileCheck %s >> + >> +void __attribute__((__swiftcall__)) f() {} >> +// CHECK-DAG: @"\01?f@@YSXXZ" >> + >> +void (__attribute__((__swiftcall__)) *p)(); >> +// CHECK-DAG: @"\01?p@@3P6SXXZA" >> + >> +namespace { >> +void __attribute__((__swiftcall__)) __attribute__((__used__)) f() { } >> +// CHECK-DAG: "\01?f@?A@@YSXXZ" >> +} >> + >> +namespace n { >> +void __attribute__((__swiftcall__)) f() {} >> +// CHECK-DAG: "\01?f@n@@YSXXZ" >> +} >> + >> +struct __declspec(dllexport) S { >> + S(const S &) = delete; >> + S & operator=(const S &) = delete; >> + void __attribute__((__swiftcall__)) m() { } >> + // CHECK-DAG: "\01?m@S@@QASXXZ" >> +}; >> + >> +void f(void (__attribute__((__swiftcall__))())) {} >> +// CHECK-DAG: "\01?f@@YAXP6SXXZ@Z" >> + >> >> >> _______________________________________________ >> cfe-commits mailing list >> cfe-commits@lists.llvm.org >> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits > > > > > -- > Saleem Abdulrasool > compnerd (at) compnerd (dot) org > > _______________________________________________ > cfe-commits mailing list > cfe-commits@lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits > _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits