rust/tests/run-make/extern-fn-with-union/test.rs

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

20 lines
420 B
Rust
Raw Normal View History

extern crate testcrate;
use std::mem;
2020-09-01 16:12:52 -05:00
extern "C" {
fn give_back(tu: testcrate::TestUnion) -> u64;
}
fn main() {
let magic: u64 = 0xDEADBEEF;
// Let's test calling it cross crate
2020-09-01 16:12:52 -05:00
let back = unsafe { testcrate::give_back(mem::transmute(magic)) };
assert_eq!(magic, back);
// And just within this crate
2020-09-01 16:12:52 -05:00
let back = unsafe { give_back(mem::transmute(magic)) };
assert_eq!(magic, back);
}