Stablize const_extern_fn
for "Rust" and "C" by Aaron1011 · Pull Request #95346 · rust-lang/rust (original) (raw)
bors added a commit to rust-lang-ci/rust that referenced this pull request
…, r=RalfJung
stabilize const_extern_fn
closes rust-lang#64926
tracking issue: rust-lang#64926 reference PR: rust-lang/reference#1596
Stabilizaton Report
Summary
Using const extern "Rust"
and const extern "C"
was already stabilized (since version 1.62.0, see rust-lang#95346). This PR stabilizes the other calling conventions: it is now possible to write const unsafe extern "calling-convention" fn
and const extern "calling-convention" fn
for any supported calling convention:
const extern "C-unwind" fn foo1(val: u8) -> u8 { val + 1}
const extern "stdcall" fn foo2(val: u8) -> u8 { val + 1}
const unsafe extern "C-unwind" fn bar1(val: bool) -> bool { !val }
const unsafe extern "stdcall" fn bar2(val: bool) -> bool { !val }
This can be used to const-ify an extern fn
, or conversely, to make a const fn
callable from external code.
r? T-lang
cc @RalfJung