summaryrefslogtreecommitdiffstats
path: root/tests/run-make/forced-unwind-terminate-pof/foo.rs
blob: 0a51287313f6e97a8016426f3066ecb987f3e062 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// Tests that forced unwind through POF Rust frames wouldn't trigger our terminating guards.

#![feature(c_unwind)]
#![no_main]

extern "C-unwind" {
    fn pthread_exit(v: *mut core::ffi::c_void) -> !;
}

unsafe extern "C" fn call_pthread_exit() {
    pthread_exit(core::ptr::null_mut());
}

#[no_mangle]
unsafe extern "C-unwind" fn main(_argc: core::ffi::c_int, _argv: *mut *mut core::ffi::c_char) {
    call_pthread_exit();
}