This commit is contained in:
The Miri Conjob Bot 2023-08-29 05:45:20 +00:00
parent 650294cdc2
commit fb3565a848

View File

@ -1,15 +1,17 @@
use std::num;
use std::mem; use std::mem;
use std::num;
fn test_abi_compat<T, U>(t: T, u: U) { fn test_abi_compat<T, U>(t: T, u: U) {
fn id<T>(x: T) -> T { x } fn id<T>(x: T) -> T {
x
}
// This checks ABI compatibility both for arguments and return values, // This checks ABI compatibility both for arguments and return values,
// in both directions. // in both directions.
let f: fn(T) -> T = id; let f: fn(T) -> T = id;
let f: fn(U) -> U = unsafe { std::mem::transmute(f) }; let f: fn(U) -> U = unsafe { std::mem::transmute(f) };
drop(f(u)); drop(f(u));
let f: fn(U) -> U = id; let f: fn(U) -> U = id;
let f: fn(T) -> T = unsafe { std::mem::transmute(f) }; let f: fn(T) -> T = unsafe { std::mem::transmute(f) };
drop(f(t)); drop(f(t));