summaryrefslogtreecommitdiffstats
path: root/tests/codegen/issues/auxiliary/static_dllimport_aux.rs
blob: afb0dc42f443a8938cce94c2ca301a1cb1a7a9f3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
use std::sync::atomic::{AtomicPtr, Ordering};

#[inline(always)]
pub fn memrchr() {
    fn detect() {}

    static CROSS_CRATE_STATIC_ITEM: AtomicPtr<()> = AtomicPtr::new(detect as *mut ());

    unsafe {
        let fun = CROSS_CRATE_STATIC_ITEM.load(Ordering::SeqCst);
        std::mem::transmute::<*mut (), fn()>(fun)()
    }
}