diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-30 03:57:31 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-30 03:57:31 +0000 |
commit | dc0db358abe19481e475e10c32149b53370f1a1c (patch) | |
tree | ab8ce99c4b255ce46f99ef402c27916055b899ee /tests/mir-opt/pre-codegen/optimizes_into_variable.main.ScalarReplacementOfAggregates.32bit.panic-unwind.diff | |
parent | Releasing progress-linux version 1.71.1+dfsg1-2~progress7.99u1. (diff) | |
download | rustc-dc0db358abe19481e475e10c32149b53370f1a1c.tar.xz rustc-dc0db358abe19481e475e10c32149b53370f1a1c.zip |
Merging upstream version 1.72.1+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'tests/mir-opt/pre-codegen/optimizes_into_variable.main.ScalarReplacementOfAggregates.32bit.panic-unwind.diff')
-rw-r--r-- | tests/mir-opt/pre-codegen/optimizes_into_variable.main.ScalarReplacementOfAggregates.32bit.panic-unwind.diff | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/tests/mir-opt/pre-codegen/optimizes_into_variable.main.ScalarReplacementOfAggregates.32bit.panic-unwind.diff b/tests/mir-opt/pre-codegen/optimizes_into_variable.main.ScalarReplacementOfAggregates.32bit.panic-unwind.diff new file mode 100644 index 000000000..e987969d3 --- /dev/null +++ b/tests/mir-opt/pre-codegen/optimizes_into_variable.main.ScalarReplacementOfAggregates.32bit.panic-unwind.diff @@ -0,0 +1,71 @@ +- // MIR for `main` before ScalarReplacementOfAggregates ++ // MIR for `main` after ScalarReplacementOfAggregates + + fn main() -> () { + let mut _0: (); + let _1: i32; + let mut _2: (i32, bool); + let mut _4: [i32; 6]; + let _5: usize; + let mut _6: usize; + let mut _7: bool; + let mut _9: Point; ++ let mut _10: u32; ++ let mut _11: u32; + scope 1 { + debug x => _1; + let _3: i32; + scope 2 { + debug y => _3; + let _8: u32; + scope 3 { + debug z => _8; + } + } + } + + bb0: { + StorageLive(_1); + _2 = CheckedAdd(const 2_i32, const 2_i32); + assert(!move (_2.1: bool), "attempt to compute `{} + {}`, which would overflow", const 2_i32, const 2_i32) -> [success: bb1, unwind continue]; + } + + bb1: { + _1 = move (_2.0: i32); + StorageLive(_3); + StorageLive(_4); + _4 = [const 0_i32, const 1_i32, const 2_i32, const 3_i32, const 4_i32, const 5_i32]; + StorageLive(_5); + _5 = const 3_usize; + _6 = Len(_4); + _7 = Lt(_5, _6); + assert(move _7, "index out of bounds: the length is {} but the index is {}", move _6, _5) -> [success: bb2, unwind continue]; + } + + bb2: { + _3 = _4[_5]; + StorageDead(_5); + StorageDead(_4); + StorageLive(_8); +- StorageLive(_9); +- _9 = Point { x: const 12_u32, y: const 42_u32 }; +- _8 = (_9.1: u32); +- StorageDead(_9); ++ StorageLive(_10); ++ StorageLive(_11); ++ nop; ++ _10 = const 12_u32; ++ _11 = const 42_u32; ++ nop; ++ _8 = _11; ++ StorageDead(_10); ++ StorageDead(_11); ++ nop; + nop; + StorageDead(_8); + StorageDead(_3); + StorageDead(_1); + return; + } + } + |