You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The following ABI strings are supported on all platforms:
112
112
113
113
r[items.extern.abi.rust]
114
-
*`unsafe extern "Rust"` -- The default ABI when you write a normal `fn foo()` in any
115
-
Rust code.
114
+
*`unsafe extern "Rust"` --- The default ABI when you write a normal `fn foo()` in any Rust code.
116
115
117
116
r[items.extern.abi.c]
118
-
*`unsafe extern "C"` -- This is the same as `extern fn foo()`; whatever the default
119
-
your C compiler supports.
117
+
*`unsafe extern "C"` --- This is the same as `extern fn foo()`; whatever the default your C compiler supports.
120
118
121
119
r[items.extern.abi.system]
122
-
*`unsafe extern "system"` -- Usually the same as `extern "C"`, except on Win32, in
123
-
which case it's `"stdcall"`, or what you should use to link to the Windows
124
-
API itself
120
+
*`unsafe extern "system"` --- Usually the same as `extern "C"`, except on Win32, in which case it's `"stdcall"`, or what you should use to link to the Windows API itself.
125
121
126
122
r[items.extern.abi.unwind]
127
-
*`extern "C-unwind"` and `extern "system-unwind"` -- identical to `"C"` and `"system"`, respectively, but with [different behavior][unwind-behavior] when the callee unwinds (by panicking or throwing a C++ style exception).
123
+
*`extern "C-unwind"` and `extern "system-unwind"` --- Identical to `"C"` and `"system"`, respectively, but with [different behavior][unwind-behavior] when the callee unwinds (by panicking or throwing a C++ style exception).
128
124
129
125
r[items.extern.abi.platform]
130
126
There are also some platform-specific ABI strings:
131
127
132
128
r[items.extern.abi.cdecl]
133
-
*`unsafe extern "cdecl"` -- The default for x86_32 C code.
129
+
*`unsafe extern "cdecl"` --- The default for x86_32 C code.
134
130
* Only available on x86_32 targets.
135
131
136
132
r[items.extern.abi.stdcall]
137
-
*`unsafe extern "stdcall"` -- The default for the Win32 API on x86_32.
133
+
*`unsafe extern "stdcall"` --- The default for the Win32 API on x86_32.
138
134
* Only available on x86_32 targets.
139
135
140
136
r[items.extern.abi.win64]
141
-
*`unsafe extern "win64"` -- The default for C code on x86_64 Windows.
137
+
*`unsafe extern "win64"` --- The default for C code on x86_64 Windows.
142
138
* Only available on x86_64 targets.
143
139
144
140
r[items.extern.abi.sysv64]
145
-
*`unsafe extern "sysv64"` -- The default for C code on non-Windows x86_64.
141
+
*`unsafe extern "sysv64"` --- The default for C code on non-Windows x86_64.
146
142
* Only available on x86_64 targets.
147
143
148
144
r[items.extern.abi.aapcs]
149
-
*`unsafe extern "aapcs"` -- The default for ARM.
145
+
*`unsafe extern "aapcs"` --- The default for ARM.
150
146
* Only available on ARM32 targets.
151
147
152
148
r[items.extern.abi.fastcall]
153
-
*`unsafe extern "fastcall"` -- The `fastcall` ABI -- corresponds to MSVC's
154
-
`__fastcall` and GCC and clang's `__attribute__((fastcall))`.
149
+
*`unsafe extern "fastcall"` --- The `fastcall` ABI --- corresponds to MSVC's `__fastcall` and GCC and clang's `__attribute__((fastcall))`.
155
150
* Only available on x86_32 targets.
156
151
157
152
r[items.extern.abi.thiscall]
158
-
*`unsafe extern "thiscall"` -- The default for C++ member functions on x86_32 MSVC -- corresponds to MSVC's `__thiscall` and GCC and clang's `__attribute__((thiscall))`.
153
+
*`unsafe extern "thiscall"` --- The default for C++ member functions on x86_32 MSVC --- corresponds to MSVC's `__thiscall` and GCC and clang's `__attribute__((thiscall))`.
159
154
* Only available on x86_32 targets.
160
155
161
156
r[items.extern.abi.efiapi]
162
-
*`unsafe extern "efiapi"` -- The ABI used for [UEFI] functions.
157
+
*`unsafe extern "efiapi"` --- The ABI used for [UEFI] functions.
163
158
* Only available on x86 and ARM targets (32bit and 64bit).
0 commit comments