Skip to content

Commit

Permalink
Auto merge of #129753 - folkertdev:stabilize-const-extern-fn, r=RalfJung
Browse files Browse the repository at this point in the history
stabilize `const_extern_fn`

closes rust-lang/rust#64926

tracking issue: rust-lang/rust#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/rust#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:

```rust
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`
  • Loading branch information
bors committed Sep 14, 2024
2 parents 03c1fad + fbfa4b1 commit bc3609f
Showing 0 changed files with 0 additions and 0 deletions.

0 comments on commit bc3609f

Please sign in to comment.