[clang] 7a20670 - AST: correct name decoration for swift async functions on Windows

Saleem Abdulrasool via cfe-commits cfe-commits at lists.llvm.org
Tue Jul 13 10:04:19 PDT 2021


Author: Saleem Abdulrasool
Date: 2021-07-13T10:04:11-07:00
New Revision: 7a20670d168af31ef77209f43ca0622800ce513a

URL: https://github.com/llvm/llvm-project/commit/7a20670d168af31ef77209f43ca0622800ce513a
DIFF: https://github.com/llvm/llvm-project/commit/7a20670d168af31ef77209f43ca0622800ce513a.diff

LOG: AST: correct name decoration for swift async functions on Windows

The name decoration scheme on Windows does not have a vendor namespace,
and the decoration scheme is not shared ownership - it is controlled by
Microsoft.  `T` is a reserved identifier for an unknown calling
convention.  The `W` identifier has been discussed with Microsoft
offline and is reserved as `Swift_3` as the identifier for the swift
async calling convention.  Adjust the name decoration accordingly.

Added: 
    

Modified: 
    clang/lib/AST/MicrosoftMangle.cpp

Removed: 
    


################################################################################
diff  --git a/clang/lib/AST/MicrosoftMangle.cpp b/clang/lib/AST/MicrosoftMangle.cpp
index fe10ce5bc0efd..d89cddd2adda0 100644
--- a/clang/lib/AST/MicrosoftMangle.cpp
+++ b/clang/lib/AST/MicrosoftMangle.cpp
@@ -2749,7 +2749,7 @@ void MicrosoftCXXNameMangler::mangleCallingConvention(CallingConv CC) {
     case CC_X86FastCall: Out << 'I'; break;
     case CC_X86VectorCall: Out << 'Q'; break;
     case CC_Swift: Out << 'S'; break;
-    case CC_SwiftAsync: Out << 'T'; break;
+    case CC_SwiftAsync: Out << 'W'; break;
     case CC_PreserveMost: Out << 'U'; break;
     case CC_X86RegCall: Out << 'w'; break;
   }


        


More information about the cfe-commits mailing list