diff options
| author | Michael Goulet <michael@errs.io> | 2023-07-22 16:22:21 +0000 |
|---|---|---|
| committer | Michael Goulet <michael@errs.io> | 2023-08-03 18:42:12 +0000 |
| commit | e43649fdc3946558a94a7ab57d399413fc2bb2b5 (patch) | |
| tree | 7d76718a411c81e0ffc274fcb056ad127a71b855 | |
| parent | 3c9549b349a2168182035e7a7ae0022d36d63e43 (diff) | |
| download | rust-e43649fdc3946558a94a7ab57d399413fc2bb2b5.tar.gz rust-e43649fdc3946558a94a7ab57d399413fc2bb2b5.zip | |
bless
| -rw-r--r-- | tests/mir-opt/inline/dont_ice_on_generic_rust_call.call.Inline.panic-abort.diff (renamed from tests/mir-opt/inline/dont_ice_on_generic_rust_call.call.Inline.diff) | 0 | ||||
| -rw-r--r-- | tests/mir-opt/inline/dont_ice_on_generic_rust_call.call.Inline.panic-unwind.diff | 37 | ||||
| -rw-r--r-- | tests/mir-opt/inline/dont_ice_on_generic_rust_call.rs | 1 | ||||
| -rw-r--r-- | tests/mir-opt/inline/inline_box_fn.call.Inline.panic-abort.diff (renamed from tests/mir-opt/inline/inline_box_fn.call.Inline.diff) | 0 | ||||
| -rw-r--r-- | tests/mir-opt/inline/inline_box_fn.call.Inline.panic-unwind.diff | 40 | ||||
| -rw-r--r-- | tests/mir-opt/inline/inline_box_fn.rs | 1 |
6 files changed, 79 insertions, 0 deletions
diff --git a/tests/mir-opt/inline/dont_ice_on_generic_rust_call.call.Inline.diff b/tests/mir-opt/inline/dont_ice_on_generic_rust_call.call.Inline.panic-abort.diff index 757617e5940..757617e5940 100644 --- a/tests/mir-opt/inline/dont_ice_on_generic_rust_call.call.Inline.diff +++ b/tests/mir-opt/inline/dont_ice_on_generic_rust_call.call.Inline.panic-abort.diff diff --git a/tests/mir-opt/inline/dont_ice_on_generic_rust_call.call.Inline.panic-unwind.diff b/tests/mir-opt/inline/dont_ice_on_generic_rust_call.call.Inline.panic-unwind.diff new file mode 100644 index 00000000000..ef85e075eeb --- /dev/null +++ b/tests/mir-opt/inline/dont_ice_on_generic_rust_call.call.Inline.panic-unwind.diff @@ -0,0 +1,37 @@ +- // MIR for `call` before Inline ++ // MIR for `call` after Inline + + fn call(_1: Box<dyn FnMut<I, Output = ()>>, _2: I) -> () { + debug mock => _1; + debug input => _2; + let mut _0: (); + let mut _3: &mut std::boxed::Box<dyn std::ops::FnMut<I, Output = ()>>; + let mut _4: I; + + bb0: { + StorageLive(_3); + _3 = &mut _1; + StorageLive(_4); + _4 = move _2; + _0 = <Box<dyn FnMut<I, Output = ()>> as FnMut<I>>::call_mut(move _3, move _4) -> [return: bb1, unwind: bb3]; + } + + bb1: { + StorageDead(_4); + StorageDead(_3); + drop(_1) -> [return: bb2, unwind: bb4]; + } + + bb2: { + return; + } + + bb3 (cleanup): { + drop(_1) -> [return: bb4, unwind terminate]; + } + + bb4 (cleanup): { + resume; + } + } + diff --git a/tests/mir-opt/inline/dont_ice_on_generic_rust_call.rs b/tests/mir-opt/inline/dont_ice_on_generic_rust_call.rs index f00e99c27e4..971223c72ca 100644 --- a/tests/mir-opt/inline/dont_ice_on_generic_rust_call.rs +++ b/tests/mir-opt/inline/dont_ice_on_generic_rust_call.rs @@ -1,3 +1,4 @@ +// EMIT_MIR_FOR_EACH_PANIC_STRATEGY // compile-flags: -Zmir-enable-passes=+Inline --crate-type=lib #![feature(fn_traits, tuple_trait, unboxed_closures)] diff --git a/tests/mir-opt/inline/inline_box_fn.call.Inline.diff b/tests/mir-opt/inline/inline_box_fn.call.Inline.panic-abort.diff index 4fa04b05e89..4fa04b05e89 100644 --- a/tests/mir-opt/inline/inline_box_fn.call.Inline.diff +++ b/tests/mir-opt/inline/inline_box_fn.call.Inline.panic-abort.diff diff --git a/tests/mir-opt/inline/inline_box_fn.call.Inline.panic-unwind.diff b/tests/mir-opt/inline/inline_box_fn.call.Inline.panic-unwind.diff new file mode 100644 index 00000000000..5df730a9930 --- /dev/null +++ b/tests/mir-opt/inline/inline_box_fn.call.Inline.panic-unwind.diff @@ -0,0 +1,40 @@ +- // MIR for `call` before Inline ++ // MIR for `call` after Inline + + fn call(_1: Box<dyn Fn(i32)>) -> () { + debug x => _1; + let mut _0: (); + let _2: (); + let mut _3: &std::boxed::Box<dyn std::ops::Fn(i32)>; + let mut _4: (i32,); + + bb0: { + StorageLive(_2); + StorageLive(_3); + _3 = &_1; + StorageLive(_4); + _4 = (const 1_i32,); + _2 = <Box<dyn Fn(i32)> as Fn<(i32,)>>::call(move _3, move _4) -> [return: bb1, unwind: bb3]; + } + + bb1: { + StorageDead(_4); + StorageDead(_3); + StorageDead(_2); + _0 = const (); + drop(_1) -> [return: bb2, unwind: bb4]; + } + + bb2: { + return; + } + + bb3 (cleanup): { + drop(_1) -> [return: bb4, unwind terminate]; + } + + bb4 (cleanup): { + resume; + } + } + diff --git a/tests/mir-opt/inline/inline_box_fn.rs b/tests/mir-opt/inline/inline_box_fn.rs index c5a74012098..348f0e77f92 100644 --- a/tests/mir-opt/inline/inline_box_fn.rs +++ b/tests/mir-opt/inline/inline_box_fn.rs @@ -1,3 +1,4 @@ +// EMIT_MIR_FOR_EACH_PANIC_STRATEGY // unit-test: Inline // compile-flags: --crate-type=lib |
