File: abi-mismatch.rs

package info (click to toggle)
rustc 1.89.0%2Bdfsg1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 906,624 kB
  • sloc: xml: 158,148; python: 34,888; javascript: 19,595; sh: 19,221; ansic: 13,046; cpp: 7,144; asm: 4,376; makefile: 692; lisp: 174; sql: 15
file content (17 lines) | stat: -rw-r--r-- 544 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// Checks that we report ABI mismatches for "const extern fn"
//@ compile-flags: -Z unleash-the-miri-inside-of-you

const extern "C" fn c_fn() {}

const fn call_rust_fn(my_fn: extern "Rust" fn()) {
    my_fn(); //~ NOTE inside `call_rust_fn`
    //~^ NOTE the failure occurred here
}

static VAL: () = call_rust_fn(unsafe { std::mem::transmute(c_fn as extern "C" fn()) });
//~^ NOTE failed inside this call
//~| ERROR calling a function with calling convention "C" using calling convention "Rust"

fn main() {}

//~? WARN skipping const checks