rust/tests/mir-opt/inline/asm_unwind.main.Inline.panic-unwind.diff

43 lines
887 B
Diff

- // MIR for `main` before Inline
+ // MIR for `main` after Inline
fn main() -> () {
let mut _0: ();
let _1: ();
+ scope 1 (inlined foo) {
+ let _2: D;
+ scope 2 {
+ debug _d => const D;
+ scope 3 {
+ }
+ }
+ }
bb0: {
StorageLive(_1);
- _1 = foo() -> [return: bb1, unwind continue];
+ StorageLive(_2);
+ asm!("", options(MAY_UNWIND)) -> [return: bb2, unwind: bb3];
}
bb1: {
+ StorageDead(_2);
StorageDead(_1);
_0 = const ();
return;
+ }
+
+ bb2: {
+ drop(_2) -> [return: bb1, unwind continue];
+ }
+
+ bb3 (cleanup): {
+ drop(_2) -> [return: bb4, unwind terminate (panic in a destructor during cleanup)];
+ }
+
+ bb4 (cleanup): {
+ resume;
}
}