//@ignore-target-windows: No libc on Windows // We are making scheduler assumptions here. //@compile-flags: -Zmiri-preemption-rate=0 // Joining itself is undefined behavior. use std::{ptr, thread}; fn main() { let handle = thread::spawn(|| { unsafe { let native: libc::pthread_t = libc::pthread_self(); assert_eq!(libc::pthread_join(native, ptr::null_mut()), 0); //~ ERROR: Undefined Behavior: trying to join itself } }); thread::yield_now(); handle.join().unwrap(); }