2022-08-20 23:47:53 -05:00
// MIR for `array_bound_mut` after PreCodegen
fn array_bound_mut ( _1 : usize , _2 : & mut [ u8 ; N ] ) -> u8 {
debug index = > _1 ; // in scope 0 at $DIR/lower_array_len_e2e.rs:+0:40: +0:45
debug slice = > _2 ; // in scope 0 at $DIR/lower_array_len_e2e.rs:+0:54: +0:59
let mut _0 : u8 ; // return place in scope 0 at $DIR/lower_array_len_e2e.rs:+0:78: +0:80
let mut _3 : bool ; // in scope 0 at $DIR/lower_array_len_e2e.rs:+1:8: +1:27
let mut _4 : usize ; // in scope 0 at $DIR/lower_array_len_e2e.rs:+1:8: +1:13
let mut _5 : usize ; // in scope 0 at $DIR/lower_array_len_e2e.rs:+1:16: +1:27
2022-04-24 16:34:24 -05:00
let mut _6 : usize ; // in scope 0 at $DIR/lower_array_len_e2e.rs:+2:9: +2:21
let mut _7 : bool ; // in scope 0 at $DIR/lower_array_len_e2e.rs:+2:9: +2:21
let _8 : usize ; // in scope 0 at $DIR/lower_array_len_e2e.rs:+4:15: +4:16
let mut _9 : usize ; // in scope 0 at $DIR/lower_array_len_e2e.rs:+4:9: +4:17
let mut _10 : bool ; // in scope 0 at $DIR/lower_array_len_e2e.rs:+4:9: +4:17
2022-08-20 23:47:53 -05:00
bb0 : {
StorageLive ( _3 ) ; // scope 0 at $DIR/lower_array_len_e2e.rs:+1:8: +1:27
StorageLive ( _4 ) ; // scope 0 at $DIR/lower_array_len_e2e.rs:+1:8: +1:13
_4 = _1 ; // scope 0 at $DIR/lower_array_len_e2e.rs:+1:8: +1:13
StorageLive ( _5 ) ; // scope 0 at $DIR/lower_array_len_e2e.rs:+1:16: +1:27
_5 = const N ; // scope 0 at $DIR/lower_array_len_e2e.rs:+1:16: +1:27
_3 = Lt ( move _4 , move _5 ) ; // scope 0 at $DIR/lower_array_len_e2e.rs:+1:8: +1:27
StorageDead ( _5 ) ; // scope 0 at $DIR/lower_array_len_e2e.rs:+1:26: +1:27
StorageDead ( _4 ) ; // scope 0 at $DIR/lower_array_len_e2e.rs:+1:26: +1:27
2022-12-03 18:03:27 -06:00
switchInt ( move _3 ) -> [ 0 : bb3 , otherwise : bb1 ] ; // scope 0 at $DIR/lower_array_len_e2e.rs:+1:8: +1:27
2022-08-20 23:47:53 -05:00
}
bb1 : {
2022-04-24 16:34:24 -05:00
_6 = const N ; // scope 0 at $DIR/lower_array_len_e2e.rs:+2:9: +2:21
_7 = Lt ( _1 , _6 ) ; // scope 0 at $DIR/lower_array_len_e2e.rs:+2:9: +2:21
assert ( move _7 , " index out of bounds: the length is {} but the index is {} " , move _6 , _1 ) -> bb2 ; // scope 0 at $DIR/lower_array_len_e2e.rs:+2:9: +2:21
2022-08-20 23:47:53 -05:00
}
bb2 : {
2022-04-24 16:34:24 -05:00
_0 = ( * _2 ) [ _1 ] ; // scope 0 at $DIR/lower_array_len_e2e.rs:+2:9: +2:21
2022-08-20 23:47:53 -05:00
goto -> bb5 ; // scope 0 at $DIR/lower_array_len_e2e.rs:+1:5: +7:6
}
bb3 : {
2022-04-24 16:34:24 -05:00
StorageLive ( _8 ) ; // scope 0 at $DIR/lower_array_len_e2e.rs:+4:15: +4:16
_8 = const 0_ usize ; // scope 0 at $DIR/lower_array_len_e2e.rs:+4:15: +4:16
_9 = const N ; // scope 0 at $DIR/lower_array_len_e2e.rs:+4:9: +4:17
_10 = Lt ( const 0_ usize , _9 ) ; // scope 0 at $DIR/lower_array_len_e2e.rs:+4:9: +4:17
assert ( move _10 , " index out of bounds: the length is {} but the index is {} " , move _9 , const 0_ usize ) -> bb4 ; // scope 0 at $DIR/lower_array_len_e2e.rs:+4:9: +4:17
2022-08-20 23:47:53 -05:00
}
bb4 : {
2022-04-24 16:34:24 -05:00
( * _2 ) [ _8 ] = const 42_ u8 ; // scope 0 at $DIR/lower_array_len_e2e.rs:+4:9: +4:22
StorageDead ( _8 ) ; // scope 0 at $DIR/lower_array_len_e2e.rs:+4:22: +4:23
2022-08-20 23:47:53 -05:00
_0 = const 42_ u8 ; // scope 0 at $DIR/lower_array_len_e2e.rs:+6:9: +6:11
goto -> bb5 ; // scope 0 at $DIR/lower_array_len_e2e.rs:+1:5: +7:6
}
bb5 : {
StorageDead ( _3 ) ; // scope 0 at $DIR/lower_array_len_e2e.rs:+7:5: +7:6
return ; // scope 0 at $DIR/lower_array_len_e2e.rs:+8:2: +8:2
}
}