[clang] Document that the swiftcall and swiftasynccall attributes are ABI-unstable (PR #215915)
John McCall via cfe-commits
cfe-commits at lists.llvm.org
Thu Aug 13 11:03:37 PDT 2026
https://github.com/rjmccall updated https://github.com/llvm/llvm-project/pull/215915
>From fa8adb2737911e9da3d3120fcb4ad34aa8281a3a Mon Sep 17 00:00:00 2001
From: John McCall <rjmccall at apple.com>
Date: Wed, 12 Aug 2026 18:37:57 -0400
Subject: [PATCH] Document that the swiftcall and swiftasynccall attributes are
ABI-unstable except on platforms where the Swift projects has declared ABI
stability.
---
clang/include/clang/Basic/AttrDocs.td | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/clang/include/clang/Basic/AttrDocs.td b/clang/include/clang/Basic/AttrDocs.td
index 0180375cbf6b6..3052dd6c77ab1 100644
--- a/clang/include/clang/Basic/AttrDocs.td
+++ b/clang/include/clang/Basic/AttrDocs.td
@@ -6490,6 +6490,14 @@ with `__has_attribute(swiftcall)`. Query if the target supports the
calling convention with `__has_extension(swiftcc)`. This implies
support for the `swift_context`, `swift_error_result`, and
`swift_indirect_result` attributes.
+
+Since this attribute follows the Swift calling convention, it is
+considered ABI-unstable except on targets where the Swift project
+has declared ABI stability. Users are responsible for ensuring that
+calls and definitions of functions with this attribute are compiled
+with compatible compilers. Note that different operating systems
+on the same architecture may use different ABIs and therefore may
+have different standards for ABI stability.
}];
}
@@ -6538,6 +6546,14 @@ the following:
Query for this attribute with `__has_attribute(swiftasynccall)`. Query if
the target supports the calling convention with
`__has_extension(swiftasynccc)`.
+
+Since this attribute follows the Swift async calling convention, it is
+considered ABI-unstable except on targets where the Swift project
+has declared ABI stability. Users are responsible for ensuring that
+calls and definitions of functions with this attribute are compiled
+with compatible compilers. Note that different operating systems
+on the same architecture may use different ABIs and therefore may
+have different standards for ABI stability.
}];
}
More information about the cfe-commits
mailing list