1//! This is a separate file containing helpers for tests of this library. It is built into a
2//! dynamic library by the build.rs script.
3#![crate_type="cdylib"]
4
5#[no_mangle]
6pub static mut TEST_STATIC_U32: u32 = 0;
7
8#[no_mangle]
9pub static mut TEST_STATIC_PTR: *mut () = 0 as *mut _;
10
11#[no_mangle]
12pub extern "C" fn test_identity_u32(x: u32) -> u32 {
13    x
14}
15
16#[repr(C)]
17pub struct S {
18    a: u64,
19    b: u32,
20    c: u16,
21    d: u8
22}
23
24#[no_mangle]
25pub extern "C" fn test_identity_struct(x: S) -> S {
26    x
27}
28
29#[no_mangle]
30pub unsafe extern "C" fn test_get_static_u32() -> u32 {
31    TEST_STATIC_U32
32}
33
34#[no_mangle]
35pub unsafe extern "C" fn test_check_static_ptr() -> bool {
36    TEST_STATIC_PTR == (&mut TEST_STATIC_PTR as *mut *mut _ as *mut _)
37}
38