Skip to content

Commit 5d22145

Browse files
committed
test unwinding past topmost frame of a stack
1 parent 35309a2 commit 5d22145

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
// ignore-windows: Concurrency on Windows is not supported yet.
2+
// error-pattern: unwinding past the topmost frame of the stack
3+
4+
//! Unwinding past the top frame of a stack is Undefined Behavior.
5+
6+
#![feature(rustc_private)]
7+
8+
extern crate libc;
9+
10+
use std::{mem, ptr};
11+
12+
extern "C" fn thread_start(_null: *mut libc::c_void) -> *mut libc::c_void {
13+
panic!()
14+
}
15+
16+
fn main() {
17+
unsafe {
18+
let mut native: libc::pthread_t = mem::zeroed();
19+
let attr: libc::pthread_attr_t = mem::zeroed();
20+
// assert_eq!(libc::pthread_attr_init(&mut attr), 0); FIXME: this function is not yet implemented.
21+
assert_eq!(libc::pthread_create(&mut native, &attr, thread_start, ptr::null_mut()), 0);
22+
assert_eq!(libc::pthread_join(native, ptr::null_mut()), 0);
23+
}
24+
}

0 commit comments

Comments
 (0)