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
114
+
*`unsafe extern "Rust"` --- The default ABI when you write a normal `fn foo()` in any
115
115
Rust code.
116
116
117
117
r[items.extern.abi.c]
118
-
*`unsafe extern "C"` -- This is the same as `extern fn foo()`; whatever the default
118
+
*`unsafe extern "C"` --- This is the same as `extern fn foo()`; whatever the default
119
119
your C compiler supports.
120
120
121
121
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
122
+
*`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
123
126
124
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).
125
+
*`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
126
129
127
r[items.extern.abi.platform]
130
128
There are also some platform-specific ABI strings:
131
129
132
130
r[items.extern.abi.cdecl]
133
-
*`unsafe extern "cdecl"` -- The default for x86_32 C code.
131
+
*`unsafe extern "cdecl"` --- The default for x86_32 C code.
134
132
* Only available on x86_32 targets.
135
133
136
134
r[items.extern.abi.stdcall]
137
-
*`unsafe extern "stdcall"` -- The default for the Win32 API on x86_32.
135
+
*`unsafe extern "stdcall"` --- The default for the Win32 API on x86_32.
138
136
* Only available on x86_32 targets.
139
137
140
138
r[items.extern.abi.win64]
141
-
*`unsafe extern "win64"` -- The default for C code on x86_64 Windows.
139
+
*`unsafe extern "win64"` --- The default for C code on x86_64 Windows.
142
140
* Only available on x86_64 targets.
143
141
144
142
r[items.extern.abi.sysv64]
145
-
*`unsafe extern "sysv64"` -- The default for C code on non-Windows x86_64.
143
+
*`unsafe extern "sysv64"` --- The default for C code on non-Windows x86_64.
146
144
* Only available on x86_64 targets.
147
145
148
146
r[items.extern.abi.aapcs]
149
-
*`unsafe extern "aapcs"` -- The default for ARM.
147
+
*`unsafe extern "aapcs"` --- The default for ARM.
150
148
* Only available on ARM32 targets.
151
149
152
150
r[items.extern.abi.fastcall]
153
-
*`unsafe extern "fastcall"` -- The `fastcall` ABI -- corresponds to MSVC's
151
+
*`unsafe extern "fastcall"` --- The `fastcall` ABI --- corresponds to MSVC's
154
152
`__fastcall` and GCC and clang's `__attribute__((fastcall))`.
155
153
* Only available on x86_32 targets.
156
154
157
155
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))`.
156
+
*`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
157
* Only available on x86_32 targets.
160
158
161
159
r[items.extern.abi.efiapi]
162
-
*`unsafe extern "efiapi"` -- The ABI used for [UEFI] functions.
160
+
*`unsafe extern "efiapi"` --- The ABI used for [UEFI] functions.
163
161
* Only available on x86 and ARM targets (32bit and 64bit).
0 commit comments