Raise an aborting signal without UB

This commit is contained in:
Ben Kimock 2023-03-28 21:37:15 -04:00
parent 67540ec950
commit 9f17ede4ac

View file

@ -4,14 +4,16 @@
// ignore-windows
// ignore-fuchsia code returned as ZX_TASK_RETCODE_EXCEPTION_KILL, FIXME (#58590)
#![feature(core_intrinsics)]
use std::env;
use std::process::Command;
pub fn main() {
let args: Vec<String> = env::args().collect();
if args.len() >= 2 && args[1] == "signal" {
// Raise a segfault.
unsafe { *(1 as *mut isize) = 0; }
// Raise an aborting signal without UB
core::intrinsics::abort();
} else {
let status = Command::new(&args[0]).arg("signal").status().unwrap();
assert!(status.code().is_none());