Add mir-opt test for asm_unwind + panic=abort

This commit is contained in:
Luqman Aden 2022-05-16 21:51:20 -07:00
parent f45f826207
commit af7f53d6d0
2 changed files with 40 additions and 0 deletions

View File

@ -0,0 +1,24 @@
// MIR for `main` after AbortUnwindingCalls
fn main() -> () {
let mut _0: (); // return place in scope 0 at $DIR/asm_unwind_panic_abort.rs:12:11: 12:11
let _1: (); // in scope 0 at $DIR/asm_unwind_panic_abort.rs:14:9: 14:49
scope 1 {
}
bb0: {
StorageLive(_1); // scope 1 at $DIR/asm_unwind_panic_abort.rs:14:9: 14:49
_1 = const (); // scope 1 at $DIR/asm_unwind_panic_abort.rs:14:9: 14:49
asm!("", options(MAY_UNWIND)) -> [return: bb1, unwind: bb2]; // scope 1 at $DIR/asm_unwind_panic_abort.rs:14:9: 14:49
}
bb1: {
StorageDead(_1); // scope 1 at $DIR/asm_unwind_panic_abort.rs:14:48: 14:49
_0 = const (); // scope 1 at $DIR/asm_unwind_panic_abort.rs:13:5: 15:6
return; // scope 0 at $DIR/asm_unwind_panic_abort.rs:16:2: 16:2
}
bb2 (cleanup): {
abort; // scope 0 at $DIR/asm_unwind_panic_abort.rs:12:1: 16:2
}
}

View File

@ -0,0 +1,16 @@
//! Tests that unwinding from an asm block is caught and forced to abort
//! when `-C panic=abort`.
// min-llvm-version: 13.0.0
// only-x86_64
// compile-flags: -C panic=abort
// no-prefer-dynamic
#![feature(asm_unwind)]
// EMIT_MIR asm_unwind_panic_abort.main.AbortUnwindingCalls.after.mir
fn main() {
unsafe {
std::arch::asm!("", options(may_unwind));
}
}