summaryrefslogtreecommitdiffstats
path: root/tests/mir-opt/gvn.constant_index_overflow.GVN.panic-unwind.diff
diff options
context:
space:
mode:
Diffstat (limited to 'tests/mir-opt/gvn.constant_index_overflow.GVN.panic-unwind.diff')
-rw-r--r--tests/mir-opt/gvn.constant_index_overflow.GVN.panic-unwind.diff104
1 files changed, 104 insertions, 0 deletions
diff --git a/tests/mir-opt/gvn.constant_index_overflow.GVN.panic-unwind.diff b/tests/mir-opt/gvn.constant_index_overflow.GVN.panic-unwind.diff
new file mode 100644
index 000000000..8abcd7e93
--- /dev/null
+++ b/tests/mir-opt/gvn.constant_index_overflow.GVN.panic-unwind.diff
@@ -0,0 +1,104 @@
+- // MIR for `constant_index_overflow` before GVN
++ // MIR for `constant_index_overflow` after GVN
+
+ fn constant_index_overflow(_1: &[T]) -> () {
+ debug x => _1;
+ let mut _0: ();
+ let _2: usize;
+ let mut _4: bool;
+ let mut _5: usize;
+ let mut _6: usize;
+ let mut _7: &[T];
+ let _8: usize;
+ let mut _9: usize;
+ let mut _10: bool;
+ let _11: usize;
+ let mut _12: usize;
+ let mut _13: bool;
+ let mut _14: T;
+ scope 1 {
+ debug a => _2;
+ let _3: T;
+ scope 2 {
+ debug b => _3;
+ }
+ }
+
+ bb0: {
+- StorageLive(_2);
+- _2 = const _ as usize (IntToInt);
++ nop;
++ _2 = const usize::MAX;
+ StorageLive(_3);
+ StorageLive(_4);
+ StorageLive(_5);
+- _5 = _2;
++ _5 = const usize::MAX;
+ StorageLive(_6);
+ StorageLive(_7);
+ _7 = &(*_1);
+ _6 = core::slice::<impl [T]>::len(move _7) -> [return: bb1, unwind continue];
+ }
+
+ bb1: {
+ StorageDead(_7);
+- _4 = Lt(move _5, move _6);
++ _4 = Lt(const usize::MAX, move _6);
+ switchInt(move _4) -> [0: bb4, otherwise: bb2];
+ }
+
+ bb2: {
+ StorageDead(_6);
+ StorageDead(_5);
+ StorageLive(_8);
+- _8 = _2;
++ _8 = const usize::MAX;
+ _9 = Len((*_1));
+- _10 = Lt(_8, _9);
+- assert(move _10, "index out of bounds: the length is {} but the index is {}", move _9, _8) -> [success: bb3, unwind continue];
++ _10 = Lt(const usize::MAX, _9);
++ assert(move _10, "index out of bounds: the length is {} but the index is {}", move _9, const usize::MAX) -> [success: bb3, unwind continue];
+ }
+
+ bb3: {
+- _3 = (*_1)[_8];
++ _3 = (*_1)[_2];
+ StorageDead(_8);
+ goto -> bb6;
+ }
+
+ bb4: {
+ StorageDead(_6);
+ StorageDead(_5);
+ StorageLive(_11);
+ _11 = const 0_usize;
+ _12 = Len((*_1));
+- _13 = Lt(_11, _12);
+- assert(move _13, "index out of bounds: the length is {} but the index is {}", move _12, _11) -> [success: bb5, unwind continue];
++ _13 = Lt(const 0_usize, _12);
++ assert(move _13, "index out of bounds: the length is {} but the index is {}", move _12, const 0_usize) -> [success: bb5, unwind continue];
+ }
+
+ bb5: {
+- _3 = (*_1)[_11];
++ _3 = (*_1)[0 of 1];
+ StorageDead(_11);
+ goto -> bb6;
+ }
+
+ bb6: {
+ StorageDead(_4);
+ StorageLive(_14);
+ _14 = _3;
+ _0 = opaque::<T>(move _14) -> [return: bb7, unwind continue];
+ }
+
+ bb7: {
+ StorageDead(_14);
+ StorageDead(_3);
+- StorageDead(_2);
++ nop;
+ return;
+ }
+ }
+