about summary refs log tree commit diff
path: root/tests/run-make/mte-ffi/foo_float.rs
blob: c1bedd5249459272e73e4cfe7e9110a25e5cf636 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#![crate_type = "cdylib"]
#![crate_name = "foo"]

use std::os::raw::c_float;

extern "C" {
    fn bar(ptr: *const c_float);
}

#[no_mangle]
pub extern "C" fn foo(ptr: *mut c_float) {
    assert_eq!((ptr as usize) >> 56, 0x1f);

    unsafe {
        *ptr = 0.5;
        *ptr.wrapping_add(1) = 0.2;
        bar(ptr);
    }
}