Separate test cases into bbs.

This commit is contained in:
Camille GILLOT 2023-05-07 12:19:46 +00:00
parent c17e878fb8
commit 8e5910fdf2
8 changed files with 1207 additions and 824 deletions

View File

@ -24,7 +24,7 @@
_5 = (*_2); // scope 0 at $SRC_DIR/core/src/intrinsics/mir.rs:LL:COL
_0 = opaque::<i32>(_5) -> bb3; // scope 0 at $DIR/reference_prop.rs:+16:13: +16:38
// mir::Constant
// + span: $DIR/reference_prop.rs:357:28: 357:34
// + span: $DIR/reference_prop.rs:382:28: 382:34
// + literal: Const { ty: fn(i32) {opaque::<i32>}, val: Value(<ZST>) }
}

View File

@ -9,6 +9,7 @@
let mut _5: &mut i32; // in scope 0 at $SRC_DIR/core/src/intrinsics/mir.rs:LL:COL
let mut _6: i32; // in scope 0 at $SRC_DIR/core/src/intrinsics/mir.rs:LL:COL
let mut _7: i32; // in scope 0 at $SRC_DIR/core/src/intrinsics/mir.rs:LL:COL
let mut _8: i32; // in scope 0 at $SRC_DIR/core/src/intrinsics/mir.rs:LL:COL
bb0: {
StorageLive(_2); // scope 0 at $DIR/reference_prop.rs:+7:13: +7:27
@ -18,33 +19,38 @@
_4 = &_2; // scope 0 at $SRC_DIR/core/src/intrinsics/mir.rs:LL:COL
_5 = &mut _3; // scope 0 at $SRC_DIR/core/src/intrinsics/mir.rs:LL:COL
(*_5) = const 7_i32; // scope 0 at $DIR/reference_prop.rs:+14:13: +14:19
switchInt(_1) -> [1: bb1, otherwise: bb2]; // scope 0 at $DIR/reference_prop.rs:+15:13: +15:46
- _6 = (*_4); // scope 0 at $SRC_DIR/core/src/intrinsics/mir.rs:LL:COL
+ _6 = _2; // scope 0 at $SRC_DIR/core/src/intrinsics/mir.rs:LL:COL
switchInt(_1) -> [1: bb1, otherwise: bb2]; // scope 0 at $DIR/reference_prop.rs:+17:13: +17:46
}
bb1: {
StorageDead(_2); // scope 0 at $DIR/reference_prop.rs:+18:13: +18:27
StorageDead(_3); // scope 0 at $DIR/reference_prop.rs:+19:13: +19:27
goto -> bb2; // scope 0 at $DIR/reference_prop.rs:+20:13: +20:22
StorageDead(_2); // scope 0 at $DIR/reference_prop.rs:+20:13: +20:27
StorageDead(_3); // scope 0 at $DIR/reference_prop.rs:+21:13: +21:27
_0 = opaque::<i32>(_6) -> bb2; // scope 0 at $DIR/reference_prop.rs:+22:13: +22:38
// mir::Constant
// + span: $DIR/reference_prop.rs:416:28: 416:34
// + literal: Const { ty: fn(i32) {opaque::<i32>}, val: Value(<ZST>) }
}
bb2: {
_6 = (*_4); // scope 0 at $SRC_DIR/core/src/intrinsics/mir.rs:LL:COL
_0 = opaque::<i32>(_6) -> bb3; // scope 0 at $DIR/reference_prop.rs:+25:13: +25:38
_7 = (*_4); // scope 0 at $SRC_DIR/core/src/intrinsics/mir.rs:LL:COL
_0 = opaque::<i32>(_7) -> bb3; // scope 0 at $DIR/reference_prop.rs:+27:13: +27:38
// mir::Constant
// + span: $DIR/reference_prop.rs:394:28: 394:34
// + span: $DIR/reference_prop.rs:421:28: 421:34
// + literal: Const { ty: fn(i32) {opaque::<i32>}, val: Value(<ZST>) }
}
bb3: {
_7 = (*_5); // scope 0 at $SRC_DIR/core/src/intrinsics/mir.rs:LL:COL
_0 = opaque::<i32>(_7) -> bb4; // scope 0 at $DIR/reference_prop.rs:+31:13: +31:43
_8 = (*_5); // scope 0 at $SRC_DIR/core/src/intrinsics/mir.rs:LL:COL
_0 = opaque::<i32>(_8) -> bb4; // scope 0 at $DIR/reference_prop.rs:+33:13: +33:43
// mir::Constant
// + span: $DIR/reference_prop.rs:400:33: 400:39
// + span: $DIR/reference_prop.rs:427:33: 427:39
// + literal: Const { ty: fn(i32) {opaque::<i32>}, val: Value(<ZST>) }
}
bb4: {
return; // scope 0 at $DIR/reference_prop.rs:+34:13: +34:21
return; // scope 0 at $DIR/reference_prop.rs:+36:13: +36:21
}
}

View File

@ -16,7 +16,7 @@
_3 = (*_2); // scope 0 at $SRC_DIR/core/src/intrinsics/mir.rs:LL:COL
_0 = opaque::<i32>(_3) -> bb1; // scope 0 at $DIR/reference_prop.rs:+14:13: +14:43
// mir::Constant
// + span: $DIR/reference_prop.rs:331:33: 331:39
// + span: $DIR/reference_prop.rs:356:33: 356:39
// + literal: Const { ty: fn(i32) {opaque::<i32>}, val: Value(<ZST>) }
}

View File

@ -5,29 +5,41 @@
debug single => _1; // in scope 0 at $DIR/reference_prop.rs:+0:39: +0:45
debug multiple => _2; // in scope 0 at $DIR/reference_prop.rs:+0:54: +0:66
let mut _0: (); // return place in scope 0 at $DIR/reference_prop.rs:+0:75: +0:75
let _3: (); // in scope 0 at $DIR/reference_prop.rs:+2:5: +6:6
let _3: (); // in scope 0 at $DIR/reference_prop.rs:+2:5: +7:6
let _4: usize; // in scope 0 at $DIR/reference_prop.rs:+3:13: +3:14
let _7: (); // in scope 0 at $DIR/reference_prop.rs:+9:5: +16:6
let _8: usize; // in scope 0 at $DIR/reference_prop.rs:+10:13: +10:14
let mut _11: &usize; // in scope 0 at $DIR/reference_prop.rs:+13:13: +13:16
let _12: &usize; // in scope 0 at $DIR/reference_prop.rs:+13:13: +13:16
let _14: (); // in scope 0 at $DIR/reference_prop.rs:+19:5: +24:6
let _15: usize; // in scope 0 at $DIR/reference_prop.rs:+20:13: +20:14
let _19: (); // in scope 0 at $DIR/reference_prop.rs:+27:5: +32:6
let _20: usize; // in scope 0 at $DIR/reference_prop.rs:+28:13: +28:14
let _24: (); // in scope 0 at $DIR/reference_prop.rs:+35:5: +40:6
let _25: usize; // in scope 0 at $DIR/reference_prop.rs:+36:13: +36:14
let _28: (); // in scope 0 at $DIR/reference_prop.rs:+39:9: +39:18
let mut _29: &usize; // in scope 0 at $DIR/reference_prop.rs:+39:16: +39:17
let _30: (); // in scope 0 at $DIR/reference_prop.rs:+43:5: +53:6
let _31: usize; // in scope 0 at $DIR/reference_prop.rs:+44:13: +44:14
let _37: (); // in scope 0 at $DIR/reference_prop.rs:+52:9: +52:19
let mut _38: &usize; // in scope 0 at $DIR/reference_prop.rs:+52:16: +52:18
let _39: (); // in scope 0 at $DIR/reference_prop.rs:+56:5: +59:6
let _40: &T; // in scope 0 at $DIR/reference_prop.rs:+57:13: +57:14
let _42: &T; // in scope 0 at $DIR/reference_prop.rs:+63:13: +63:14
let mut _43: &T; // in scope 0 at $DIR/reference_prop.rs:+64:20: +64:28
let _44: &T; // in scope 0 at $DIR/reference_prop.rs:+64:20: +64:28
let _7: (); // in scope 0 at $DIR/reference_prop.rs:+6:9: +6:19
let mut _8: (); // in scope 0 at $DIR/reference_prop.rs:+6:16: +6:18
let _9: (); // in scope 0 at $DIR/reference_prop.rs:+10:5: +18:6
let _10: usize; // in scope 0 at $DIR/reference_prop.rs:+11:13: +11:14
let mut _13: &usize; // in scope 0 at $DIR/reference_prop.rs:+14:13: +14:16
let _14: &usize; // in scope 0 at $DIR/reference_prop.rs:+14:13: +14:16
let _16: (); // in scope 0 at $DIR/reference_prop.rs:+17:9: +17:19
let mut _17: (); // in scope 0 at $DIR/reference_prop.rs:+17:16: +17:18
let _18: (); // in scope 0 at $DIR/reference_prop.rs:+21:5: +27:6
let _19: usize; // in scope 0 at $DIR/reference_prop.rs:+22:13: +22:14
let _23: (); // in scope 0 at $DIR/reference_prop.rs:+26:9: +26:19
let mut _24: (); // in scope 0 at $DIR/reference_prop.rs:+26:16: +26:18
let _25: (); // in scope 0 at $DIR/reference_prop.rs:+30:5: +36:6
let _26: usize; // in scope 0 at $DIR/reference_prop.rs:+31:13: +31:14
let _30: (); // in scope 0 at $DIR/reference_prop.rs:+35:9: +35:19
let mut _31: (); // in scope 0 at $DIR/reference_prop.rs:+35:16: +35:18
let _32: (); // in scope 0 at $DIR/reference_prop.rs:+39:5: +44:6
let _33: usize; // in scope 0 at $DIR/reference_prop.rs:+40:13: +40:14
let _36: (); // in scope 0 at $DIR/reference_prop.rs:+43:9: +43:18
let mut _37: &usize; // in scope 0 at $DIR/reference_prop.rs:+43:16: +43:17
let _38: (); // in scope 0 at $DIR/reference_prop.rs:+47:5: +57:6
let _39: usize; // in scope 0 at $DIR/reference_prop.rs:+48:13: +48:14
let _45: (); // in scope 0 at $DIR/reference_prop.rs:+56:9: +56:19
let mut _46: &usize; // in scope 0 at $DIR/reference_prop.rs:+56:16: +56:18
let _47: (); // in scope 0 at $DIR/reference_prop.rs:+60:5: +64:6
let _48: &T; // in scope 0 at $DIR/reference_prop.rs:+61:13: +61:14
let _50: (); // in scope 0 at $DIR/reference_prop.rs:+63:9: +63:19
let mut _51: (); // in scope 0 at $DIR/reference_prop.rs:+63:16: +63:18
let _52: &T; // in scope 0 at $DIR/reference_prop.rs:+68:13: +68:14
let mut _53: &T; // in scope 0 at $DIR/reference_prop.rs:+69:20: +69:28
let _54: &T; // in scope 0 at $DIR/reference_prop.rs:+69:20: +69:28
let _56: (); // in scope 0 at $DIR/reference_prop.rs:+71:9: +71:19
let mut _57: (); // in scope 0 at $DIR/reference_prop.rs:+71:16: +71:18
scope 1 {
debug a => _4; // in scope 1 at $DIR/reference_prop.rs:+3:13: +3:14
let _5: &usize; // in scope 1 at $DIR/reference_prop.rs:+4:13: +4:14
@ -40,78 +52,78 @@
}
}
scope 4 {
debug a => _8; // in scope 4 at $DIR/reference_prop.rs:+10:13: +10:14
let _9: usize; // in scope 4 at $DIR/reference_prop.rs:+11:13: +11:15
debug a => _10; // in scope 4 at $DIR/reference_prop.rs:+11:13: +11:14
let _11: usize; // in scope 4 at $DIR/reference_prop.rs:+12:13: +12:15
scope 5 {
debug a2 => _9; // in scope 5 at $DIR/reference_prop.rs:+11:13: +11:15
let mut _10: &usize; // in scope 5 at $DIR/reference_prop.rs:+12:13: +12:18
debug a2 => _11; // in scope 5 at $DIR/reference_prop.rs:+12:13: +12:15
let mut _12: &usize; // in scope 5 at $DIR/reference_prop.rs:+13:13: +13:18
scope 6 {
debug b => _10; // in scope 6 at $DIR/reference_prop.rs:+12:13: +12:18
let _13: usize; // in scope 6 at $DIR/reference_prop.rs:+15:13: +15:14
debug b => _12; // in scope 6 at $DIR/reference_prop.rs:+13:13: +13:18
let _15: usize; // in scope 6 at $DIR/reference_prop.rs:+16:13: +16:14
scope 7 {
debug c => _13; // in scope 7 at $DIR/reference_prop.rs:+15:13: +15:14
debug c => _15; // in scope 7 at $DIR/reference_prop.rs:+16:13: +16:14
}
}
}
}
scope 8 {
debug a => _15; // in scope 8 at $DIR/reference_prop.rs:+20:13: +20:14
let _16: &usize; // in scope 8 at $DIR/reference_prop.rs:+21:13: +21:14
debug a => _19; // in scope 8 at $DIR/reference_prop.rs:+22:13: +22:14
let _20: &usize; // in scope 8 at $DIR/reference_prop.rs:+23:13: +23:14
scope 9 {
debug b => _16; // in scope 9 at $DIR/reference_prop.rs:+21:13: +21:14
let _17: &&usize; // in scope 9 at $DIR/reference_prop.rs:+22:13: +22:14
debug b => _20; // in scope 9 at $DIR/reference_prop.rs:+23:13: +23:14
let _21: &&usize; // in scope 9 at $DIR/reference_prop.rs:+24:13: +24:14
scope 10 {
debug d => _17; // in scope 10 at $DIR/reference_prop.rs:+22:13: +22:14
let _18: usize; // in scope 10 at $DIR/reference_prop.rs:+23:13: +23:14
debug d => _21; // in scope 10 at $DIR/reference_prop.rs:+24:13: +24:14
let _22: usize; // in scope 10 at $DIR/reference_prop.rs:+25:13: +25:14
scope 11 {
debug c => _18; // in scope 11 at $DIR/reference_prop.rs:+23:13: +23:14
debug c => _22; // in scope 11 at $DIR/reference_prop.rs:+25:13: +25:14
}
}
}
}
scope 12 {
debug a => _20; // in scope 12 at $DIR/reference_prop.rs:+28:13: +28:14
let mut _21: &usize; // in scope 12 at $DIR/reference_prop.rs:+29:13: +29:18
debug a => _26; // in scope 12 at $DIR/reference_prop.rs:+31:13: +31:14
let mut _27: &usize; // in scope 12 at $DIR/reference_prop.rs:+32:13: +32:18
scope 13 {
debug b => _21; // in scope 13 at $DIR/reference_prop.rs:+29:13: +29:18
let _22: &mut &usize; // in scope 13 at $DIR/reference_prop.rs:+30:13: +30:14
debug b => _27; // in scope 13 at $DIR/reference_prop.rs:+32:13: +32:18
let _28: &mut &usize; // in scope 13 at $DIR/reference_prop.rs:+33:13: +33:14
scope 14 {
debug d => _22; // in scope 14 at $DIR/reference_prop.rs:+30:13: +30:14
let _23: usize; // in scope 14 at $DIR/reference_prop.rs:+31:13: +31:14
debug d => _28; // in scope 14 at $DIR/reference_prop.rs:+33:13: +33:14
let _29: usize; // in scope 14 at $DIR/reference_prop.rs:+34:13: +34:14
scope 15 {
debug c => _23; // in scope 15 at $DIR/reference_prop.rs:+31:13: +31:14
debug c => _29; // in scope 15 at $DIR/reference_prop.rs:+34:13: +34:14
}
}
}
}
scope 16 {
debug a => _25; // in scope 16 at $DIR/reference_prop.rs:+36:13: +36:14
let _26: &usize; // in scope 16 at $DIR/reference_prop.rs:+37:13: +37:14
debug a => _33; // in scope 16 at $DIR/reference_prop.rs:+40:13: +40:14
let _34: &usize; // in scope 16 at $DIR/reference_prop.rs:+41:13: +41:14
scope 17 {
debug b => _26; // in scope 17 at $DIR/reference_prop.rs:+37:13: +37:14
let _27: usize; // in scope 17 at $DIR/reference_prop.rs:+38:13: +38:14
debug b => _34; // in scope 17 at $DIR/reference_prop.rs:+41:13: +41:14
let _35: usize; // in scope 17 at $DIR/reference_prop.rs:+42:13: +42:14
scope 18 {
debug c => _27; // in scope 18 at $DIR/reference_prop.rs:+38:13: +38:14
debug c => _35; // in scope 18 at $DIR/reference_prop.rs:+42:13: +42:14
}
}
}
scope 19 {
debug a => _31; // in scope 19 at $DIR/reference_prop.rs:+44:13: +44:14
let _32: &usize; // in scope 19 at $DIR/reference_prop.rs:+45:13: +45:15
debug a => _39; // in scope 19 at $DIR/reference_prop.rs:+48:13: +48:14
let _40: &usize; // in scope 19 at $DIR/reference_prop.rs:+49:13: +49:15
scope 20 {
debug b1 => _32; // in scope 20 at $DIR/reference_prop.rs:+45:13: +45:15
let _33: usize; // in scope 20 at $DIR/reference_prop.rs:+46:13: +46:14
debug b1 => _40; // in scope 20 at $DIR/reference_prop.rs:+49:13: +49:15
let _41: usize; // in scope 20 at $DIR/reference_prop.rs:+50:13: +50:14
scope 21 {
debug c => _33; // in scope 21 at $DIR/reference_prop.rs:+46:13: +46:14
let _34: &usize; // in scope 21 at $DIR/reference_prop.rs:+47:13: +47:15
debug c => _41; // in scope 21 at $DIR/reference_prop.rs:+50:13: +50:14
let _42: &usize; // in scope 21 at $DIR/reference_prop.rs:+51:13: +51:15
scope 22 {
debug b2 => _34; // in scope 22 at $DIR/reference_prop.rs:+47:13: +47:15
let _35: usize; // in scope 22 at $DIR/reference_prop.rs:+48:13: +48:15
debug b2 => _42; // in scope 22 at $DIR/reference_prop.rs:+51:13: +51:15
let _43: usize; // in scope 22 at $DIR/reference_prop.rs:+52:13: +52:15
scope 23 {
debug c2 => _35; // in scope 23 at $DIR/reference_prop.rs:+48:13: +48:15
let _36: &usize; // in scope 23 at $DIR/reference_prop.rs:+49:13: +49:15
debug c2 => _43; // in scope 23 at $DIR/reference_prop.rs:+52:13: +52:15
let _44: &usize; // in scope 23 at $DIR/reference_prop.rs:+53:13: +53:15
scope 24 {
debug b3 => _36; // in scope 24 at $DIR/reference_prop.rs:+49:13: +49:15
debug b3 => _44; // in scope 24 at $DIR/reference_prop.rs:+53:13: +53:15
}
}
}
@ -119,173 +131,245 @@
}
}
scope 25 {
debug a => _40; // in scope 25 at $DIR/reference_prop.rs:+57:13: +57:14
let _41: T; // in scope 25 at $DIR/reference_prop.rs:+58:13: +58:14
debug a => _48; // in scope 25 at $DIR/reference_prop.rs:+61:13: +61:14
let _49: T; // in scope 25 at $DIR/reference_prop.rs:+62:13: +62:14
scope 26 {
debug b => _41; // in scope 26 at $DIR/reference_prop.rs:+58:13: +58:14
debug b => _49; // in scope 26 at $DIR/reference_prop.rs:+62:13: +62:14
}
}
scope 27 {
debug a => _42; // in scope 27 at $DIR/reference_prop.rs:+63:13: +63:14
let _45: T; // in scope 27 at $DIR/reference_prop.rs:+65:13: +65:14
debug a => _52; // in scope 27 at $DIR/reference_prop.rs:+68:13: +68:14
let _55: T; // in scope 27 at $DIR/reference_prop.rs:+70:13: +70:14
scope 28 {
debug b => _45; // in scope 28 at $DIR/reference_prop.rs:+65:13: +65:14
debug b => _55; // in scope 28 at $DIR/reference_prop.rs:+70:13: +70:14
}
}
bb0: {
- StorageLive(_3); // scope 0 at $DIR/reference_prop.rs:+2:5: +6:6
- StorageLive(_3); // scope 0 at $DIR/reference_prop.rs:+2:5: +7:6
StorageLive(_4); // scope 0 at $DIR/reference_prop.rs:+3:13: +3:14
_4 = const 5_usize; // scope 0 at $DIR/reference_prop.rs:+3:17: +3:24
StorageLive(_5); // scope 1 at $DIR/reference_prop.rs:+4:13: +4:14
_5 = &_4; // scope 1 at $DIR/reference_prop.rs:+4:17: +4:19
StorageLive(_6); // scope 2 at $DIR/reference_prop.rs:+5:13: +5:14
- _6 = (*_5); // scope 2 at $DIR/reference_prop.rs:+5:17: +5:19
- _3 = const (); // scope 0 at $DIR/reference_prop.rs:+2:5: +6:6
+ _6 = _4; // scope 2 at $DIR/reference_prop.rs:+5:17: +5:19
StorageDead(_6); // scope 2 at $DIR/reference_prop.rs:+6:5: +6:6
StorageDead(_5); // scope 1 at $DIR/reference_prop.rs:+6:5: +6:6
StorageDead(_4); // scope 0 at $DIR/reference_prop.rs:+6:5: +6:6
- StorageDead(_3); // scope 0 at $DIR/reference_prop.rs:+6:5: +6:6
- StorageLive(_7); // scope 0 at $DIR/reference_prop.rs:+9:5: +16:6
StorageLive(_8); // scope 0 at $DIR/reference_prop.rs:+10:13: +10:14
_8 = const 5_usize; // scope 0 at $DIR/reference_prop.rs:+10:17: +10:24
StorageLive(_9); // scope 4 at $DIR/reference_prop.rs:+11:13: +11:15
_9 = const 7_usize; // scope 4 at $DIR/reference_prop.rs:+11:18: +11:25
StorageLive(_10); // scope 5 at $DIR/reference_prop.rs:+12:13: +12:18
_10 = &_8; // scope 5 at $DIR/reference_prop.rs:+12:21: +12:23
StorageLive(_11); // scope 6 at $DIR/reference_prop.rs:+13:13: +13:16
- StorageLive(_12); // scope 6 at $DIR/reference_prop.rs:+13:13: +13:16
- _12 = &_9; // scope 6 at $DIR/reference_prop.rs:+13:13: +13:16
- _11 = &(*_12); // scope 6 at $DIR/reference_prop.rs:+13:13: +13:16
+ _11 = &_9; // scope 6 at $DIR/reference_prop.rs:+13:13: +13:16
_10 = move _11; // scope 6 at $DIR/reference_prop.rs:+13:9: +13:16
StorageDead(_11); // scope 6 at $DIR/reference_prop.rs:+13:15: +13:16
- StorageDead(_12); // scope 6 at $DIR/reference_prop.rs:+13:16: +13:17
StorageLive(_13); // scope 6 at $DIR/reference_prop.rs:+15:13: +15:14
_13 = (*_10); // scope 6 at $DIR/reference_prop.rs:+15:17: +15:19
- _7 = const (); // scope 0 at $DIR/reference_prop.rs:+9:5: +16:6
StorageDead(_13); // scope 6 at $DIR/reference_prop.rs:+16:5: +16:6
StorageDead(_10); // scope 5 at $DIR/reference_prop.rs:+16:5: +16:6
StorageDead(_9); // scope 4 at $DIR/reference_prop.rs:+16:5: +16:6
StorageDead(_8); // scope 0 at $DIR/reference_prop.rs:+16:5: +16:6
- StorageDead(_7); // scope 0 at $DIR/reference_prop.rs:+16:5: +16:6
- StorageLive(_14); // scope 0 at $DIR/reference_prop.rs:+19:5: +24:6
StorageLive(_15); // scope 0 at $DIR/reference_prop.rs:+20:13: +20:14
_15 = const 5_usize; // scope 0 at $DIR/reference_prop.rs:+20:17: +20:24
StorageLive(_16); // scope 8 at $DIR/reference_prop.rs:+21:13: +21:14
_16 = &_15; // scope 8 at $DIR/reference_prop.rs:+21:17: +21:19
StorageLive(_17); // scope 9 at $DIR/reference_prop.rs:+22:13: +22:14
_17 = &_16; // scope 9 at $DIR/reference_prop.rs:+22:17: +22:19
StorageLive(_18); // scope 10 at $DIR/reference_prop.rs:+23:13: +23:14
_18 = (*_16); // scope 10 at $DIR/reference_prop.rs:+23:17: +23:19
- _14 = const (); // scope 0 at $DIR/reference_prop.rs:+19:5: +24:6
StorageDead(_18); // scope 10 at $DIR/reference_prop.rs:+24:5: +24:6
StorageDead(_17); // scope 9 at $DIR/reference_prop.rs:+24:5: +24:6
StorageDead(_16); // scope 8 at $DIR/reference_prop.rs:+24:5: +24:6
StorageDead(_15); // scope 0 at $DIR/reference_prop.rs:+24:5: +24:6
- StorageDead(_14); // scope 0 at $DIR/reference_prop.rs:+24:5: +24:6
- StorageLive(_19); // scope 0 at $DIR/reference_prop.rs:+27:5: +32:6
StorageLive(_20); // scope 0 at $DIR/reference_prop.rs:+28:13: +28:14
_20 = const 5_usize; // scope 0 at $DIR/reference_prop.rs:+28:17: +28:24
StorageLive(_21); // scope 12 at $DIR/reference_prop.rs:+29:13: +29:18
_21 = &_20; // scope 12 at $DIR/reference_prop.rs:+29:21: +29:23
StorageLive(_22); // scope 13 at $DIR/reference_prop.rs:+30:13: +30:14
_22 = &mut _21; // scope 13 at $DIR/reference_prop.rs:+30:17: +30:23
StorageLive(_23); // scope 14 at $DIR/reference_prop.rs:+31:13: +31:14
_23 = (*_21); // scope 14 at $DIR/reference_prop.rs:+31:17: +31:19
- _19 = const (); // scope 0 at $DIR/reference_prop.rs:+27:5: +32:6
StorageDead(_23); // scope 14 at $DIR/reference_prop.rs:+32:5: +32:6
StorageDead(_22); // scope 13 at $DIR/reference_prop.rs:+32:5: +32:6
StorageDead(_21); // scope 12 at $DIR/reference_prop.rs:+32:5: +32:6
StorageDead(_20); // scope 0 at $DIR/reference_prop.rs:+32:5: +32:6
- StorageDead(_19); // scope 0 at $DIR/reference_prop.rs:+32:5: +32:6
- StorageLive(_24); // scope 0 at $DIR/reference_prop.rs:+35:5: +40:6
StorageLive(_25); // scope 0 at $DIR/reference_prop.rs:+36:13: +36:14
_25 = const 7_usize; // scope 0 at $DIR/reference_prop.rs:+36:17: +36:24
StorageLive(_26); // scope 16 at $DIR/reference_prop.rs:+37:13: +37:14
_26 = &_25; // scope 16 at $DIR/reference_prop.rs:+37:17: +37:19
StorageLive(_27); // scope 17 at $DIR/reference_prop.rs:+38:13: +38:14
- _27 = (*_26); // scope 17 at $DIR/reference_prop.rs:+38:17: +38:19
+ _27 = _25; // scope 17 at $DIR/reference_prop.rs:+38:17: +38:19
StorageLive(_28); // scope 18 at $DIR/reference_prop.rs:+39:9: +39:18
StorageLive(_29); // scope 18 at $DIR/reference_prop.rs:+39:16: +39:17
_29 = _26; // scope 18 at $DIR/reference_prop.rs:+39:16: +39:17
_28 = opaque::<&usize>(move _29) -> bb1; // scope 18 at $DIR/reference_prop.rs:+39:9: +39:18
StorageLive(_7); // scope 3 at $DIR/reference_prop.rs:+6:9: +6:19
StorageLive(_8); // scope 3 at $DIR/reference_prop.rs:+6:16: +6:18
_8 = (); // scope 3 at $DIR/reference_prop.rs:+6:16: +6:18
_7 = opaque::<()>(move _8) -> bb1; // scope 3 at $DIR/reference_prop.rs:+6:9: +6:19
// mir::Constant
// + span: $DIR/reference_prop.rs:48:9: 48:15
// + literal: Const { ty: fn(&usize) {opaque::<&usize>}, val: Value(<ZST>) }
// + span: $DIR/reference_prop.rs:15:9: 15:15
// + literal: Const { ty: fn(()) {opaque::<()>}, val: Value(<ZST>) }
}
bb1: {
StorageDead(_29); // scope 18 at $DIR/reference_prop.rs:+39:17: +39:18
StorageDead(_28); // scope 18 at $DIR/reference_prop.rs:+39:18: +39:19
- _24 = const (); // scope 0 at $DIR/reference_prop.rs:+35:5: +40:6
StorageDead(_27); // scope 17 at $DIR/reference_prop.rs:+40:5: +40:6
StorageDead(_26); // scope 16 at $DIR/reference_prop.rs:+40:5: +40:6
StorageDead(_25); // scope 0 at $DIR/reference_prop.rs:+40:5: +40:6
- StorageDead(_24); // scope 0 at $DIR/reference_prop.rs:+40:5: +40:6
- StorageLive(_30); // scope 0 at $DIR/reference_prop.rs:+43:5: +53:6
StorageLive(_31); // scope 0 at $DIR/reference_prop.rs:+44:13: +44:14
_31 = const 7_usize; // scope 0 at $DIR/reference_prop.rs:+44:17: +44:24
StorageLive(_32); // scope 19 at $DIR/reference_prop.rs:+45:13: +45:15
_32 = &_31; // scope 19 at $DIR/reference_prop.rs:+45:18: +45:20
StorageLive(_33); // scope 20 at $DIR/reference_prop.rs:+46:13: +46:14
- _33 = (*_32); // scope 20 at $DIR/reference_prop.rs:+46:17: +46:20
+ _33 = _31; // scope 20 at $DIR/reference_prop.rs:+46:17: +46:20
StorageLive(_34); // scope 21 at $DIR/reference_prop.rs:+47:13: +47:15
_34 = _32; // scope 21 at $DIR/reference_prop.rs:+47:18: +47:20
StorageLive(_35); // scope 22 at $DIR/reference_prop.rs:+48:13: +48:15
- _35 = (*_34); // scope 22 at $DIR/reference_prop.rs:+48:18: +48:21
+ _35 = _31; // scope 22 at $DIR/reference_prop.rs:+48:18: +48:21
StorageLive(_36); // scope 23 at $DIR/reference_prop.rs:+49:13: +49:15
_36 = _34; // scope 23 at $DIR/reference_prop.rs:+49:18: +49:20
StorageLive(_37); // scope 24 at $DIR/reference_prop.rs:+52:9: +52:19
StorageLive(_38); // scope 24 at $DIR/reference_prop.rs:+52:16: +52:18
_38 = _36; // scope 24 at $DIR/reference_prop.rs:+52:16: +52:18
_37 = opaque::<&usize>(move _38) -> bb2; // scope 24 at $DIR/reference_prop.rs:+52:9: +52:19
StorageDead(_8); // scope 3 at $DIR/reference_prop.rs:+6:18: +6:19
StorageDead(_7); // scope 3 at $DIR/reference_prop.rs:+6:19: +6:20
- _3 = const (); // scope 0 at $DIR/reference_prop.rs:+2:5: +7:6
StorageDead(_6); // scope 2 at $DIR/reference_prop.rs:+7:5: +7:6
StorageDead(_5); // scope 1 at $DIR/reference_prop.rs:+7:5: +7:6
StorageDead(_4); // scope 0 at $DIR/reference_prop.rs:+7:5: +7:6
- StorageDead(_3); // scope 0 at $DIR/reference_prop.rs:+7:5: +7:6
- StorageLive(_9); // scope 0 at $DIR/reference_prop.rs:+10:5: +18:6
StorageLive(_10); // scope 0 at $DIR/reference_prop.rs:+11:13: +11:14
_10 = const 5_usize; // scope 0 at $DIR/reference_prop.rs:+11:17: +11:24
StorageLive(_11); // scope 4 at $DIR/reference_prop.rs:+12:13: +12:15
_11 = const 7_usize; // scope 4 at $DIR/reference_prop.rs:+12:18: +12:25
StorageLive(_12); // scope 5 at $DIR/reference_prop.rs:+13:13: +13:18
_12 = &_10; // scope 5 at $DIR/reference_prop.rs:+13:21: +13:23
StorageLive(_13); // scope 6 at $DIR/reference_prop.rs:+14:13: +14:16
- StorageLive(_14); // scope 6 at $DIR/reference_prop.rs:+14:13: +14:16
- _14 = &_11; // scope 6 at $DIR/reference_prop.rs:+14:13: +14:16
- _13 = &(*_14); // scope 6 at $DIR/reference_prop.rs:+14:13: +14:16
+ _13 = &_11; // scope 6 at $DIR/reference_prop.rs:+14:13: +14:16
_12 = move _13; // scope 6 at $DIR/reference_prop.rs:+14:9: +14:16
StorageDead(_13); // scope 6 at $DIR/reference_prop.rs:+14:15: +14:16
- StorageDead(_14); // scope 6 at $DIR/reference_prop.rs:+14:16: +14:17
StorageLive(_15); // scope 6 at $DIR/reference_prop.rs:+16:13: +16:14
_15 = (*_12); // scope 6 at $DIR/reference_prop.rs:+16:17: +16:19
StorageLive(_16); // scope 7 at $DIR/reference_prop.rs:+17:9: +17:19
StorageLive(_17); // scope 7 at $DIR/reference_prop.rs:+17:16: +17:18
_17 = (); // scope 7 at $DIR/reference_prop.rs:+17:16: +17:18
_16 = opaque::<()>(move _17) -> bb2; // scope 7 at $DIR/reference_prop.rs:+17:9: +17:19
// mir::Constant
// + span: $DIR/reference_prop.rs:61:9: 61:15
// + literal: Const { ty: fn(&usize) {opaque::<&usize>}, val: Value(<ZST>) }
// + span: $DIR/reference_prop.rs:26:9: 26:15
// + literal: Const { ty: fn(()) {opaque::<()>}, val: Value(<ZST>) }
}
bb2: {
StorageDead(_38); // scope 24 at $DIR/reference_prop.rs:+52:18: +52:19
StorageDead(_37); // scope 24 at $DIR/reference_prop.rs:+52:19: +52:20
- _30 = const (); // scope 0 at $DIR/reference_prop.rs:+43:5: +53:6
StorageDead(_36); // scope 23 at $DIR/reference_prop.rs:+53:5: +53:6
StorageDead(_35); // scope 22 at $DIR/reference_prop.rs:+53:5: +53:6
StorageDead(_34); // scope 21 at $DIR/reference_prop.rs:+53:5: +53:6
StorageDead(_33); // scope 20 at $DIR/reference_prop.rs:+53:5: +53:6
StorageDead(_32); // scope 19 at $DIR/reference_prop.rs:+53:5: +53:6
StorageDead(_31); // scope 0 at $DIR/reference_prop.rs:+53:5: +53:6
- StorageDead(_30); // scope 0 at $DIR/reference_prop.rs:+53:5: +53:6
- StorageLive(_39); // scope 0 at $DIR/reference_prop.rs:+56:5: +59:6
StorageLive(_40); // scope 0 at $DIR/reference_prop.rs:+57:13: +57:14
_40 = &(*_1); // scope 0 at $DIR/reference_prop.rs:+57:17: +57:25
StorageLive(_41); // scope 25 at $DIR/reference_prop.rs:+58:13: +58:14
- _41 = (*_40); // scope 25 at $DIR/reference_prop.rs:+58:17: +58:19
- _39 = const (); // scope 0 at $DIR/reference_prop.rs:+56:5: +59:6
+ _41 = (*_1); // scope 25 at $DIR/reference_prop.rs:+58:17: +58:19
StorageDead(_41); // scope 25 at $DIR/reference_prop.rs:+59:5: +59:6
StorageDead(_40); // scope 0 at $DIR/reference_prop.rs:+59:5: +59:6
- StorageDead(_39); // scope 0 at $DIR/reference_prop.rs:+59:5: +59:6
StorageLive(_42); // scope 0 at $DIR/reference_prop.rs:+63:13: +63:14
_42 = &(*_2); // scope 0 at $DIR/reference_prop.rs:+63:17: +63:27
StorageLive(_43); // scope 27 at $DIR/reference_prop.rs:+64:20: +64:28
- StorageLive(_44); // scope 27 at $DIR/reference_prop.rs:+64:20: +64:28
- _44 = &(*_1); // scope 27 at $DIR/reference_prop.rs:+64:20: +64:28
- _43 = &(*_44); // scope 27 at $DIR/reference_prop.rs:+64:20: +64:28
+ _43 = &(*_1); // scope 27 at $DIR/reference_prop.rs:+64:20: +64:28
_2 = move _43; // scope 27 at $DIR/reference_prop.rs:+64:9: +64:28
StorageDead(_43); // scope 27 at $DIR/reference_prop.rs:+64:27: +64:28
- StorageDead(_44); // scope 27 at $DIR/reference_prop.rs:+64:28: +64:29
StorageLive(_45); // scope 27 at $DIR/reference_prop.rs:+65:13: +65:14
_45 = (*_42); // scope 27 at $DIR/reference_prop.rs:+65:17: +65:19
_0 = const (); // scope 0 at $DIR/reference_prop.rs:+62:5: +66:6
StorageDead(_45); // scope 27 at $DIR/reference_prop.rs:+66:5: +66:6
StorageDead(_42); // scope 0 at $DIR/reference_prop.rs:+66:5: +66:6
return; // scope 0 at $DIR/reference_prop.rs:+67:2: +67:2
StorageDead(_17); // scope 7 at $DIR/reference_prop.rs:+17:18: +17:19
StorageDead(_16); // scope 7 at $DIR/reference_prop.rs:+17:19: +17:20
- _9 = const (); // scope 0 at $DIR/reference_prop.rs:+10:5: +18:6
StorageDead(_15); // scope 6 at $DIR/reference_prop.rs:+18:5: +18:6
StorageDead(_12); // scope 5 at $DIR/reference_prop.rs:+18:5: +18:6
StorageDead(_11); // scope 4 at $DIR/reference_prop.rs:+18:5: +18:6
StorageDead(_10); // scope 0 at $DIR/reference_prop.rs:+18:5: +18:6
- StorageDead(_9); // scope 0 at $DIR/reference_prop.rs:+18:5: +18:6
- StorageLive(_18); // scope 0 at $DIR/reference_prop.rs:+21:5: +27:6
StorageLive(_19); // scope 0 at $DIR/reference_prop.rs:+22:13: +22:14
_19 = const 5_usize; // scope 0 at $DIR/reference_prop.rs:+22:17: +22:24
StorageLive(_20); // scope 8 at $DIR/reference_prop.rs:+23:13: +23:14
_20 = &_19; // scope 8 at $DIR/reference_prop.rs:+23:17: +23:19
StorageLive(_21); // scope 9 at $DIR/reference_prop.rs:+24:13: +24:14
_21 = &_20; // scope 9 at $DIR/reference_prop.rs:+24:17: +24:19
StorageLive(_22); // scope 10 at $DIR/reference_prop.rs:+25:13: +25:14
_22 = (*_20); // scope 10 at $DIR/reference_prop.rs:+25:17: +25:19
StorageLive(_23); // scope 11 at $DIR/reference_prop.rs:+26:9: +26:19
StorageLive(_24); // scope 11 at $DIR/reference_prop.rs:+26:16: +26:18
_24 = (); // scope 11 at $DIR/reference_prop.rs:+26:16: +26:18
_23 = opaque::<()>(move _24) -> bb3; // scope 11 at $DIR/reference_prop.rs:+26:9: +26:19
// mir::Constant
// + span: $DIR/reference_prop.rs:35:9: 35:15
// + literal: Const { ty: fn(()) {opaque::<()>}, val: Value(<ZST>) }
}
bb3: {
StorageDead(_24); // scope 11 at $DIR/reference_prop.rs:+26:18: +26:19
StorageDead(_23); // scope 11 at $DIR/reference_prop.rs:+26:19: +26:20
- _18 = const (); // scope 0 at $DIR/reference_prop.rs:+21:5: +27:6
StorageDead(_22); // scope 10 at $DIR/reference_prop.rs:+27:5: +27:6
StorageDead(_21); // scope 9 at $DIR/reference_prop.rs:+27:5: +27:6
StorageDead(_20); // scope 8 at $DIR/reference_prop.rs:+27:5: +27:6
StorageDead(_19); // scope 0 at $DIR/reference_prop.rs:+27:5: +27:6
- StorageDead(_18); // scope 0 at $DIR/reference_prop.rs:+27:5: +27:6
- StorageLive(_25); // scope 0 at $DIR/reference_prop.rs:+30:5: +36:6
StorageLive(_26); // scope 0 at $DIR/reference_prop.rs:+31:13: +31:14
_26 = const 5_usize; // scope 0 at $DIR/reference_prop.rs:+31:17: +31:24
StorageLive(_27); // scope 12 at $DIR/reference_prop.rs:+32:13: +32:18
_27 = &_26; // scope 12 at $DIR/reference_prop.rs:+32:21: +32:23
StorageLive(_28); // scope 13 at $DIR/reference_prop.rs:+33:13: +33:14
_28 = &mut _27; // scope 13 at $DIR/reference_prop.rs:+33:17: +33:23
StorageLive(_29); // scope 14 at $DIR/reference_prop.rs:+34:13: +34:14
_29 = (*_27); // scope 14 at $DIR/reference_prop.rs:+34:17: +34:19
StorageLive(_30); // scope 15 at $DIR/reference_prop.rs:+35:9: +35:19
StorageLive(_31); // scope 15 at $DIR/reference_prop.rs:+35:16: +35:18
_31 = (); // scope 15 at $DIR/reference_prop.rs:+35:16: +35:18
_30 = opaque::<()>(move _31) -> bb4; // scope 15 at $DIR/reference_prop.rs:+35:9: +35:19
// mir::Constant
// + span: $DIR/reference_prop.rs:44:9: 44:15
// + literal: Const { ty: fn(()) {opaque::<()>}, val: Value(<ZST>) }
}
bb4: {
StorageDead(_31); // scope 15 at $DIR/reference_prop.rs:+35:18: +35:19
StorageDead(_30); // scope 15 at $DIR/reference_prop.rs:+35:19: +35:20
- _25 = const (); // scope 0 at $DIR/reference_prop.rs:+30:5: +36:6
StorageDead(_29); // scope 14 at $DIR/reference_prop.rs:+36:5: +36:6
StorageDead(_28); // scope 13 at $DIR/reference_prop.rs:+36:5: +36:6
StorageDead(_27); // scope 12 at $DIR/reference_prop.rs:+36:5: +36:6
StorageDead(_26); // scope 0 at $DIR/reference_prop.rs:+36:5: +36:6
- StorageDead(_25); // scope 0 at $DIR/reference_prop.rs:+36:5: +36:6
- StorageLive(_32); // scope 0 at $DIR/reference_prop.rs:+39:5: +44:6
StorageLive(_33); // scope 0 at $DIR/reference_prop.rs:+40:13: +40:14
_33 = const 7_usize; // scope 0 at $DIR/reference_prop.rs:+40:17: +40:24
StorageLive(_34); // scope 16 at $DIR/reference_prop.rs:+41:13: +41:14
_34 = &_33; // scope 16 at $DIR/reference_prop.rs:+41:17: +41:19
StorageLive(_35); // scope 17 at $DIR/reference_prop.rs:+42:13: +42:14
- _35 = (*_34); // scope 17 at $DIR/reference_prop.rs:+42:17: +42:19
+ _35 = _33; // scope 17 at $DIR/reference_prop.rs:+42:17: +42:19
StorageLive(_36); // scope 18 at $DIR/reference_prop.rs:+43:9: +43:18
StorageLive(_37); // scope 18 at $DIR/reference_prop.rs:+43:16: +43:17
_37 = _34; // scope 18 at $DIR/reference_prop.rs:+43:16: +43:17
_36 = opaque::<&usize>(move _37) -> bb5; // scope 18 at $DIR/reference_prop.rs:+43:9: +43:18
// mir::Constant
// + span: $DIR/reference_prop.rs:52:9: 52:15
// + literal: Const { ty: fn(&usize) {opaque::<&usize>}, val: Value(<ZST>) }
}
bb5: {
StorageDead(_37); // scope 18 at $DIR/reference_prop.rs:+43:17: +43:18
StorageDead(_36); // scope 18 at $DIR/reference_prop.rs:+43:18: +43:19
- _32 = const (); // scope 0 at $DIR/reference_prop.rs:+39:5: +44:6
StorageDead(_35); // scope 17 at $DIR/reference_prop.rs:+44:5: +44:6
StorageDead(_34); // scope 16 at $DIR/reference_prop.rs:+44:5: +44:6
StorageDead(_33); // scope 0 at $DIR/reference_prop.rs:+44:5: +44:6
- StorageDead(_32); // scope 0 at $DIR/reference_prop.rs:+44:5: +44:6
- StorageLive(_38); // scope 0 at $DIR/reference_prop.rs:+47:5: +57:6
StorageLive(_39); // scope 0 at $DIR/reference_prop.rs:+48:13: +48:14
_39 = const 7_usize; // scope 0 at $DIR/reference_prop.rs:+48:17: +48:24
StorageLive(_40); // scope 19 at $DIR/reference_prop.rs:+49:13: +49:15
_40 = &_39; // scope 19 at $DIR/reference_prop.rs:+49:18: +49:20
StorageLive(_41); // scope 20 at $DIR/reference_prop.rs:+50:13: +50:14
- _41 = (*_40); // scope 20 at $DIR/reference_prop.rs:+50:17: +50:20
+ _41 = _39; // scope 20 at $DIR/reference_prop.rs:+50:17: +50:20
StorageLive(_42); // scope 21 at $DIR/reference_prop.rs:+51:13: +51:15
_42 = _40; // scope 21 at $DIR/reference_prop.rs:+51:18: +51:20
StorageLive(_43); // scope 22 at $DIR/reference_prop.rs:+52:13: +52:15
- _43 = (*_42); // scope 22 at $DIR/reference_prop.rs:+52:18: +52:21
+ _43 = _39; // scope 22 at $DIR/reference_prop.rs:+52:18: +52:21
StorageLive(_44); // scope 23 at $DIR/reference_prop.rs:+53:13: +53:15
_44 = _42; // scope 23 at $DIR/reference_prop.rs:+53:18: +53:20
StorageLive(_45); // scope 24 at $DIR/reference_prop.rs:+56:9: +56:19
StorageLive(_46); // scope 24 at $DIR/reference_prop.rs:+56:16: +56:18
_46 = _44; // scope 24 at $DIR/reference_prop.rs:+56:16: +56:18
_45 = opaque::<&usize>(move _46) -> bb6; // scope 24 at $DIR/reference_prop.rs:+56:9: +56:19
// mir::Constant
// + span: $DIR/reference_prop.rs:65:9: 65:15
// + literal: Const { ty: fn(&usize) {opaque::<&usize>}, val: Value(<ZST>) }
}
bb6: {
StorageDead(_46); // scope 24 at $DIR/reference_prop.rs:+56:18: +56:19
StorageDead(_45); // scope 24 at $DIR/reference_prop.rs:+56:19: +56:20
- _38 = const (); // scope 0 at $DIR/reference_prop.rs:+47:5: +57:6
StorageDead(_44); // scope 23 at $DIR/reference_prop.rs:+57:5: +57:6
StorageDead(_43); // scope 22 at $DIR/reference_prop.rs:+57:5: +57:6
StorageDead(_42); // scope 21 at $DIR/reference_prop.rs:+57:5: +57:6
StorageDead(_41); // scope 20 at $DIR/reference_prop.rs:+57:5: +57:6
StorageDead(_40); // scope 19 at $DIR/reference_prop.rs:+57:5: +57:6
StorageDead(_39); // scope 0 at $DIR/reference_prop.rs:+57:5: +57:6
- StorageDead(_38); // scope 0 at $DIR/reference_prop.rs:+57:5: +57:6
- StorageLive(_47); // scope 0 at $DIR/reference_prop.rs:+60:5: +64:6
StorageLive(_48); // scope 0 at $DIR/reference_prop.rs:+61:13: +61:14
_48 = &(*_1); // scope 0 at $DIR/reference_prop.rs:+61:17: +61:25
StorageLive(_49); // scope 25 at $DIR/reference_prop.rs:+62:13: +62:14
- _49 = (*_48); // scope 25 at $DIR/reference_prop.rs:+62:17: +62:19
+ _49 = (*_1); // scope 25 at $DIR/reference_prop.rs:+62:17: +62:19
StorageLive(_50); // scope 26 at $DIR/reference_prop.rs:+63:9: +63:19
StorageLive(_51); // scope 26 at $DIR/reference_prop.rs:+63:16: +63:18
_51 = (); // scope 26 at $DIR/reference_prop.rs:+63:16: +63:18
_50 = opaque::<()>(move _51) -> bb7; // scope 26 at $DIR/reference_prop.rs:+63:9: +63:19
// mir::Constant
// + span: $DIR/reference_prop.rs:72:9: 72:15
// + literal: Const { ty: fn(()) {opaque::<()>}, val: Value(<ZST>) }
}
bb7: {
StorageDead(_51); // scope 26 at $DIR/reference_prop.rs:+63:18: +63:19
StorageDead(_50); // scope 26 at $DIR/reference_prop.rs:+63:19: +63:20
- _47 = const (); // scope 0 at $DIR/reference_prop.rs:+60:5: +64:6
StorageDead(_49); // scope 25 at $DIR/reference_prop.rs:+64:5: +64:6
StorageDead(_48); // scope 0 at $DIR/reference_prop.rs:+64:5: +64:6
- StorageDead(_47); // scope 0 at $DIR/reference_prop.rs:+64:5: +64:6
StorageLive(_52); // scope 0 at $DIR/reference_prop.rs:+68:13: +68:14
_52 = &(*_2); // scope 0 at $DIR/reference_prop.rs:+68:17: +68:27
StorageLive(_53); // scope 27 at $DIR/reference_prop.rs:+69:20: +69:28
- StorageLive(_54); // scope 27 at $DIR/reference_prop.rs:+69:20: +69:28
- _54 = &(*_1); // scope 27 at $DIR/reference_prop.rs:+69:20: +69:28
- _53 = &(*_54); // scope 27 at $DIR/reference_prop.rs:+69:20: +69:28
+ _53 = &(*_1); // scope 27 at $DIR/reference_prop.rs:+69:20: +69:28
_2 = move _53; // scope 27 at $DIR/reference_prop.rs:+69:9: +69:28
StorageDead(_53); // scope 27 at $DIR/reference_prop.rs:+69:27: +69:28
- StorageDead(_54); // scope 27 at $DIR/reference_prop.rs:+69:28: +69:29
StorageLive(_55); // scope 27 at $DIR/reference_prop.rs:+70:13: +70:14
_55 = (*_52); // scope 27 at $DIR/reference_prop.rs:+70:17: +70:19
StorageLive(_56); // scope 28 at $DIR/reference_prop.rs:+71:9: +71:19
StorageLive(_57); // scope 28 at $DIR/reference_prop.rs:+71:16: +71:18
_57 = (); // scope 28 at $DIR/reference_prop.rs:+71:16: +71:18
_56 = opaque::<()>(move _57) -> bb8; // scope 28 at $DIR/reference_prop.rs:+71:9: +71:19
// mir::Constant
// + span: $DIR/reference_prop.rs:80:9: 80:15
// + literal: Const { ty: fn(()) {opaque::<()>}, val: Value(<ZST>) }
}
bb8: {
StorageDead(_57); // scope 28 at $DIR/reference_prop.rs:+71:18: +71:19
StorageDead(_56); // scope 28 at $DIR/reference_prop.rs:+71:19: +71:20
_0 = const (); // scope 0 at $DIR/reference_prop.rs:+67:5: +72:6
StorageDead(_55); // scope 27 at $DIR/reference_prop.rs:+72:5: +72:6
StorageDead(_52); // scope 0 at $DIR/reference_prop.rs:+72:5: +72:6
return; // scope 0 at $DIR/reference_prop.rs:+73:2: +73:2
}
}

View File

@ -5,20 +5,34 @@
debug single => _1; // in scope 0 at $DIR/reference_prop.rs:+0:45: +0:51
debug multiple => _2; // in scope 0 at $DIR/reference_prop.rs:+0:63: +0:75
let mut _0: (); // return place in scope 0 at $DIR/reference_prop.rs:+0:87: +0:87
let _3: (); // in scope 0 at $DIR/reference_prop.rs:+2:5: +6:6
let _7: (); // in scope 0 at $DIR/reference_prop.rs:+9:5: +16:6
let mut _11: *const usize; // in scope 0 at $DIR/reference_prop.rs:+13:13: +13:26
let _13: (); // in scope 0 at $DIR/reference_prop.rs:+19:5: +24:6
let _18: (); // in scope 0 at $DIR/reference_prop.rs:+27:5: +32:6
let _23: (); // in scope 0 at $DIR/reference_prop.rs:+35:5: +40:6
let _27: (); // in scope 0 at $DIR/reference_prop.rs:+39:9: +39:18
let mut _28: *const usize; // in scope 0 at $DIR/reference_prop.rs:+39:16: +39:17
let _29: (); // in scope 0 at $DIR/reference_prop.rs:+43:5: +53:6
let _36: (); // in scope 0 at $DIR/reference_prop.rs:+52:9: +52:19
let mut _37: *const usize; // in scope 0 at $DIR/reference_prop.rs:+52:16: +52:18
let _38: (); // in scope 0 at $DIR/reference_prop.rs:+56:5: +59:6
let _41: (); // in scope 0 at $DIR/reference_prop.rs:+62:5: +66:6
let mut _43: *const T; // in scope 0 at $DIR/reference_prop.rs:+64:20: +64:38
let _3: (); // in scope 0 at $DIR/reference_prop.rs:+2:5: +7:6
let _7: (); // in scope 0 at $DIR/reference_prop.rs:+6:9: +6:19
let mut _8: (); // in scope 0 at $DIR/reference_prop.rs:+6:16: +6:18
let _9: (); // in scope 0 at $DIR/reference_prop.rs:+10:5: +18:6
let mut _13: *const usize; // in scope 0 at $DIR/reference_prop.rs:+14:13: +14:26
let _15: (); // in scope 0 at $DIR/reference_prop.rs:+17:9: +17:19
let mut _16: (); // in scope 0 at $DIR/reference_prop.rs:+17:16: +17:18
let _17: (); // in scope 0 at $DIR/reference_prop.rs:+21:5: +27:6
let _22: (); // in scope 0 at $DIR/reference_prop.rs:+26:9: +26:19
let mut _23: (); // in scope 0 at $DIR/reference_prop.rs:+26:16: +26:18
let _24: (); // in scope 0 at $DIR/reference_prop.rs:+30:5: +36:6
let _29: (); // in scope 0 at $DIR/reference_prop.rs:+35:9: +35:19
let mut _30: (); // in scope 0 at $DIR/reference_prop.rs:+35:16: +35:18
let _31: (); // in scope 0 at $DIR/reference_prop.rs:+39:5: +44:6
let _35: (); // in scope 0 at $DIR/reference_prop.rs:+43:9: +43:18
let mut _36: *const usize; // in scope 0 at $DIR/reference_prop.rs:+43:16: +43:17
let _37: (); // in scope 0 at $DIR/reference_prop.rs:+47:5: +57:6
let _44: (); // in scope 0 at $DIR/reference_prop.rs:+56:9: +56:19
let mut _45: *const usize; // in scope 0 at $DIR/reference_prop.rs:+56:16: +56:18
let _46: (); // in scope 0 at $DIR/reference_prop.rs:+60:5: +64:6
let _49: (); // in scope 0 at $DIR/reference_prop.rs:+63:9: +63:19
let mut _50: (); // in scope 0 at $DIR/reference_prop.rs:+63:16: +63:18
let _51: (); // in scope 0 at $DIR/reference_prop.rs:+67:5: +72:6
let mut _53: *const T; // in scope 0 at $DIR/reference_prop.rs:+69:20: +69:38
let _55: (); // in scope 0 at $DIR/reference_prop.rs:+71:9: +71:19
let mut _56: (); // in scope 0 at $DIR/reference_prop.rs:+71:16: +71:18
let _61: (); // in scope 0 at $DIR/reference_prop.rs:+80:9: +80:19
let mut _62: (); // in scope 0 at $DIR/reference_prop.rs:+80:16: +80:18
scope 1 {
let _4: usize; // in scope 1 at $DIR/reference_prop.rs:+3:13: +3:14
scope 2 {
@ -34,92 +48,92 @@
}
}
scope 5 {
let _8: usize; // in scope 5 at $DIR/reference_prop.rs:+10:13: +10:14
let _10: usize; // in scope 5 at $DIR/reference_prop.rs:+11:13: +11:14
scope 6 {
debug a => _8; // in scope 6 at $DIR/reference_prop.rs:+10:13: +10:14
let _9: usize; // in scope 6 at $DIR/reference_prop.rs:+11:13: +11:15
debug a => _10; // in scope 6 at $DIR/reference_prop.rs:+11:13: +11:14
let _11: usize; // in scope 6 at $DIR/reference_prop.rs:+12:13: +12:15
scope 7 {
debug a2 => _9; // in scope 7 at $DIR/reference_prop.rs:+11:13: +11:15
let mut _10: *const usize; // in scope 7 at $DIR/reference_prop.rs:+12:13: +12:18
debug a2 => _11; // in scope 7 at $DIR/reference_prop.rs:+12:13: +12:15
let mut _12: *const usize; // in scope 7 at $DIR/reference_prop.rs:+13:13: +13:18
scope 8 {
debug b => _10; // in scope 8 at $DIR/reference_prop.rs:+12:13: +12:18
let _12: usize; // in scope 8 at $DIR/reference_prop.rs:+15:13: +15:14
debug b => _12; // in scope 8 at $DIR/reference_prop.rs:+13:13: +13:18
let _14: usize; // in scope 8 at $DIR/reference_prop.rs:+16:13: +16:14
scope 9 {
debug c => _12; // in scope 9 at $DIR/reference_prop.rs:+15:13: +15:14
debug c => _14; // in scope 9 at $DIR/reference_prop.rs:+16:13: +16:14
}
}
}
}
}
scope 10 {
let _14: usize; // in scope 10 at $DIR/reference_prop.rs:+20:13: +20:14
let _18: usize; // in scope 10 at $DIR/reference_prop.rs:+22:13: +22:14
scope 11 {
debug a => _14; // in scope 11 at $DIR/reference_prop.rs:+20:13: +20:14
let _15: *const usize; // in scope 11 at $DIR/reference_prop.rs:+21:13: +21:14
debug a => _18; // in scope 11 at $DIR/reference_prop.rs:+22:13: +22:14
let _19: *const usize; // in scope 11 at $DIR/reference_prop.rs:+23:13: +23:14
scope 12 {
debug b => _15; // in scope 12 at $DIR/reference_prop.rs:+21:13: +21:14
let _16: &*const usize; // in scope 12 at $DIR/reference_prop.rs:+22:13: +22:14
debug b => _19; // in scope 12 at $DIR/reference_prop.rs:+23:13: +23:14
let _20: &*const usize; // in scope 12 at $DIR/reference_prop.rs:+24:13: +24:14
scope 13 {
debug d => _16; // in scope 13 at $DIR/reference_prop.rs:+22:13: +22:14
let _17: usize; // in scope 13 at $DIR/reference_prop.rs:+23:13: +23:14
debug d => _20; // in scope 13 at $DIR/reference_prop.rs:+24:13: +24:14
let _21: usize; // in scope 13 at $DIR/reference_prop.rs:+25:13: +25:14
scope 14 {
debug c => _17; // in scope 14 at $DIR/reference_prop.rs:+23:13: +23:14
debug c => _21; // in scope 14 at $DIR/reference_prop.rs:+25:13: +25:14
}
}
}
}
}
scope 15 {
let _19: usize; // in scope 15 at $DIR/reference_prop.rs:+28:13: +28:14
let _25: usize; // in scope 15 at $DIR/reference_prop.rs:+31:13: +31:14
scope 16 {
debug a => _19; // in scope 16 at $DIR/reference_prop.rs:+28:13: +28:14
let mut _20: *const usize; // in scope 16 at $DIR/reference_prop.rs:+29:13: +29:18
debug a => _25; // in scope 16 at $DIR/reference_prop.rs:+31:13: +31:14
let mut _26: *const usize; // in scope 16 at $DIR/reference_prop.rs:+32:13: +32:18
scope 17 {
debug b => _20; // in scope 17 at $DIR/reference_prop.rs:+29:13: +29:18
let _21: &mut *const usize; // in scope 17 at $DIR/reference_prop.rs:+30:13: +30:14
debug b => _26; // in scope 17 at $DIR/reference_prop.rs:+32:13: +32:18
let _27: &mut *const usize; // in scope 17 at $DIR/reference_prop.rs:+33:13: +33:14
scope 18 {
debug d => _21; // in scope 18 at $DIR/reference_prop.rs:+30:13: +30:14
let _22: usize; // in scope 18 at $DIR/reference_prop.rs:+31:13: +31:14
debug d => _27; // in scope 18 at $DIR/reference_prop.rs:+33:13: +33:14
let _28: usize; // in scope 18 at $DIR/reference_prop.rs:+34:13: +34:14
scope 19 {
debug c => _22; // in scope 19 at $DIR/reference_prop.rs:+31:13: +31:14
debug c => _28; // in scope 19 at $DIR/reference_prop.rs:+34:13: +34:14
}
}
}
}
}
scope 20 {
let _24: usize; // in scope 20 at $DIR/reference_prop.rs:+36:13: +36:14
let _32: usize; // in scope 20 at $DIR/reference_prop.rs:+40:13: +40:14
scope 21 {
debug a => _24; // in scope 21 at $DIR/reference_prop.rs:+36:13: +36:14
let _25: *const usize; // in scope 21 at $DIR/reference_prop.rs:+37:13: +37:14
debug a => _32; // in scope 21 at $DIR/reference_prop.rs:+40:13: +40:14
let _33: *const usize; // in scope 21 at $DIR/reference_prop.rs:+41:13: +41:14
scope 22 {
debug b => _25; // in scope 22 at $DIR/reference_prop.rs:+37:13: +37:14
let _26: usize; // in scope 22 at $DIR/reference_prop.rs:+38:13: +38:14
debug b => _33; // in scope 22 at $DIR/reference_prop.rs:+41:13: +41:14
let _34: usize; // in scope 22 at $DIR/reference_prop.rs:+42:13: +42:14
scope 23 {
debug c => _26; // in scope 23 at $DIR/reference_prop.rs:+38:13: +38:14
debug c => _34; // in scope 23 at $DIR/reference_prop.rs:+42:13: +42:14
}
}
}
}
scope 24 {
let _30: usize; // in scope 24 at $DIR/reference_prop.rs:+44:13: +44:14
let _38: usize; // in scope 24 at $DIR/reference_prop.rs:+48:13: +48:14
scope 25 {
debug a => _30; // in scope 25 at $DIR/reference_prop.rs:+44:13: +44:14
let _31: *const usize; // in scope 25 at $DIR/reference_prop.rs:+45:13: +45:15
debug a => _38; // in scope 25 at $DIR/reference_prop.rs:+48:13: +48:14
let _39: *const usize; // in scope 25 at $DIR/reference_prop.rs:+49:13: +49:15
scope 26 {
debug b1 => _31; // in scope 26 at $DIR/reference_prop.rs:+45:13: +45:15
let _32: usize; // in scope 26 at $DIR/reference_prop.rs:+46:13: +46:14
debug b1 => _39; // in scope 26 at $DIR/reference_prop.rs:+49:13: +49:15
let _40: usize; // in scope 26 at $DIR/reference_prop.rs:+50:13: +50:14
scope 27 {
debug c => _32; // in scope 27 at $DIR/reference_prop.rs:+46:13: +46:14
let _33: *const usize; // in scope 27 at $DIR/reference_prop.rs:+47:13: +47:15
debug c => _40; // in scope 27 at $DIR/reference_prop.rs:+50:13: +50:14
let _41: *const usize; // in scope 27 at $DIR/reference_prop.rs:+51:13: +51:15
scope 28 {
debug b2 => _33; // in scope 28 at $DIR/reference_prop.rs:+47:13: +47:15
let _34: usize; // in scope 28 at $DIR/reference_prop.rs:+48:13: +48:15
debug b2 => _41; // in scope 28 at $DIR/reference_prop.rs:+51:13: +51:15
let _42: usize; // in scope 28 at $DIR/reference_prop.rs:+52:13: +52:15
scope 29 {
debug c2 => _34; // in scope 29 at $DIR/reference_prop.rs:+48:13: +48:15
let _35: *const usize; // in scope 29 at $DIR/reference_prop.rs:+49:13: +49:15
debug c2 => _42; // in scope 29 at $DIR/reference_prop.rs:+52:13: +52:15
let _43: *const usize; // in scope 29 at $DIR/reference_prop.rs:+53:13: +53:15
scope 30 {
debug b3 => _35; // in scope 30 at $DIR/reference_prop.rs:+49:13: +49:15
debug b3 => _43; // in scope 30 at $DIR/reference_prop.rs:+53:13: +53:15
}
}
}
@ -128,38 +142,38 @@
}
}
scope 31 {
let _39: *const T; // in scope 31 at $DIR/reference_prop.rs:+57:13: +57:14
let _47: *const T; // in scope 31 at $DIR/reference_prop.rs:+61:13: +61:14
scope 32 {
debug a => _39; // in scope 32 at $DIR/reference_prop.rs:+57:13: +57:14
let _40: T; // in scope 32 at $DIR/reference_prop.rs:+58:13: +58:14
debug a => _47; // in scope 32 at $DIR/reference_prop.rs:+61:13: +61:14
let _48: T; // in scope 32 at $DIR/reference_prop.rs:+62:13: +62:14
scope 33 {
debug b => _40; // in scope 33 at $DIR/reference_prop.rs:+58:13: +58:14
debug b => _48; // in scope 33 at $DIR/reference_prop.rs:+62:13: +62:14
}
}
}
scope 34 {
let _42: *const T; // in scope 34 at $DIR/reference_prop.rs:+63:13: +63:14
let _52: *const T; // in scope 34 at $DIR/reference_prop.rs:+68:13: +68:14
scope 35 {
debug a => _42; // in scope 35 at $DIR/reference_prop.rs:+63:13: +63:14
let _44: T; // in scope 35 at $DIR/reference_prop.rs:+65:13: +65:14
debug a => _52; // in scope 35 at $DIR/reference_prop.rs:+68:13: +68:14
let _54: T; // in scope 35 at $DIR/reference_prop.rs:+70:13: +70:14
scope 36 {
debug b => _44; // in scope 36 at $DIR/reference_prop.rs:+65:13: +65:14
debug b => _54; // in scope 36 at $DIR/reference_prop.rs:+70:13: +70:14
}
}
}
scope 37 {
let _45: usize; // in scope 37 at $DIR/reference_prop.rs:+70:13: +70:14
let _57: usize; // in scope 37 at $DIR/reference_prop.rs:+76:13: +76:14
scope 38 {
debug a => _45; // in scope 38 at $DIR/reference_prop.rs:+70:13: +70:14
let _46: *const usize; // in scope 38 at $DIR/reference_prop.rs:+71:13: +71:14
debug a => _57; // in scope 38 at $DIR/reference_prop.rs:+76:13: +76:14
let _58: *const usize; // in scope 38 at $DIR/reference_prop.rs:+77:13: +77:14
scope 39 {
debug b => _46; // in scope 39 at $DIR/reference_prop.rs:+71:13: +71:14
let _47: *const usize; // in scope 39 at $DIR/reference_prop.rs:+72:13: +72:14
debug b => _58; // in scope 39 at $DIR/reference_prop.rs:+77:13: +77:14
let _59: *const usize; // in scope 39 at $DIR/reference_prop.rs:+78:13: +78:14
scope 40 {
debug c => _47; // in scope 40 at $DIR/reference_prop.rs:+72:13: +72:14
let _48: usize; // in scope 40 at $DIR/reference_prop.rs:+73:13: +73:14
debug c => _59; // in scope 40 at $DIR/reference_prop.rs:+78:13: +78:14
let _60: usize; // in scope 40 at $DIR/reference_prop.rs:+79:13: +79:14
scope 41 {
debug e => _48; // in scope 41 at $DIR/reference_prop.rs:+73:13: +73:14
debug e => _60; // in scope 41 at $DIR/reference_prop.rs:+79:13: +79:14
}
}
}
@ -167,167 +181,251 @@
}
bb0: {
- StorageLive(_3); // scope 0 at $DIR/reference_prop.rs:+2:5: +6:6
- StorageLive(_3); // scope 0 at $DIR/reference_prop.rs:+2:5: +7:6
StorageLive(_4); // scope 1 at $DIR/reference_prop.rs:+3:13: +3:14
_4 = const 5_usize; // scope 1 at $DIR/reference_prop.rs:+3:17: +3:24
StorageLive(_5); // scope 2 at $DIR/reference_prop.rs:+4:13: +4:14
_5 = &raw const _4; // scope 2 at $DIR/reference_prop.rs:+4:17: +4:29
StorageLive(_6); // scope 3 at $DIR/reference_prop.rs:+5:13: +5:14
- _6 = (*_5); // scope 3 at $DIR/reference_prop.rs:+5:17: +5:19
- _3 = const (); // scope 1 at $DIR/reference_prop.rs:+2:5: +6:6
+ _6 = _4; // scope 3 at $DIR/reference_prop.rs:+5:17: +5:19
StorageDead(_6); // scope 3 at $DIR/reference_prop.rs:+6:5: +6:6
StorageDead(_5); // scope 2 at $DIR/reference_prop.rs:+6:5: +6:6
StorageDead(_4); // scope 1 at $DIR/reference_prop.rs:+6:5: +6:6
- StorageDead(_3); // scope 0 at $DIR/reference_prop.rs:+6:5: +6:6
- StorageLive(_7); // scope 0 at $DIR/reference_prop.rs:+9:5: +16:6
StorageLive(_8); // scope 5 at $DIR/reference_prop.rs:+10:13: +10:14
_8 = const 5_usize; // scope 5 at $DIR/reference_prop.rs:+10:17: +10:24
StorageLive(_9); // scope 6 at $DIR/reference_prop.rs:+11:13: +11:15
_9 = const 7_usize; // scope 6 at $DIR/reference_prop.rs:+11:18: +11:25
StorageLive(_10); // scope 7 at $DIR/reference_prop.rs:+12:13: +12:18
_10 = &raw const _8; // scope 7 at $DIR/reference_prop.rs:+12:21: +12:33
StorageLive(_11); // scope 8 at $DIR/reference_prop.rs:+13:13: +13:26
_11 = &raw const _9; // scope 8 at $DIR/reference_prop.rs:+13:13: +13:26
_10 = move _11; // scope 8 at $DIR/reference_prop.rs:+13:9: +13:26
StorageDead(_11); // scope 8 at $DIR/reference_prop.rs:+13:25: +13:26
StorageLive(_12); // scope 8 at $DIR/reference_prop.rs:+15:13: +15:14
_12 = (*_10); // scope 8 at $DIR/reference_prop.rs:+15:17: +15:19
- _7 = const (); // scope 5 at $DIR/reference_prop.rs:+9:5: +16:6
StorageDead(_12); // scope 8 at $DIR/reference_prop.rs:+16:5: +16:6
StorageDead(_10); // scope 7 at $DIR/reference_prop.rs:+16:5: +16:6
StorageDead(_9); // scope 6 at $DIR/reference_prop.rs:+16:5: +16:6
StorageDead(_8); // scope 5 at $DIR/reference_prop.rs:+16:5: +16:6
- StorageDead(_7); // scope 0 at $DIR/reference_prop.rs:+16:5: +16:6
- StorageLive(_13); // scope 0 at $DIR/reference_prop.rs:+19:5: +24:6
StorageLive(_14); // scope 10 at $DIR/reference_prop.rs:+20:13: +20:14
_14 = const 5_usize; // scope 10 at $DIR/reference_prop.rs:+20:17: +20:24
StorageLive(_15); // scope 11 at $DIR/reference_prop.rs:+21:13: +21:14
_15 = &raw const _14; // scope 11 at $DIR/reference_prop.rs:+21:17: +21:29
StorageLive(_16); // scope 12 at $DIR/reference_prop.rs:+22:13: +22:14
_16 = &_15; // scope 12 at $DIR/reference_prop.rs:+22:17: +22:19
StorageLive(_17); // scope 13 at $DIR/reference_prop.rs:+23:13: +23:14
_17 = (*_15); // scope 13 at $DIR/reference_prop.rs:+23:17: +23:19
- _13 = const (); // scope 10 at $DIR/reference_prop.rs:+19:5: +24:6
StorageDead(_17); // scope 13 at $DIR/reference_prop.rs:+24:5: +24:6
StorageDead(_16); // scope 12 at $DIR/reference_prop.rs:+24:5: +24:6
StorageDead(_15); // scope 11 at $DIR/reference_prop.rs:+24:5: +24:6
StorageDead(_14); // scope 10 at $DIR/reference_prop.rs:+24:5: +24:6
- StorageDead(_13); // scope 0 at $DIR/reference_prop.rs:+24:5: +24:6
- StorageLive(_18); // scope 0 at $DIR/reference_prop.rs:+27:5: +32:6
StorageLive(_19); // scope 15 at $DIR/reference_prop.rs:+28:13: +28:14
_19 = const 5_usize; // scope 15 at $DIR/reference_prop.rs:+28:17: +28:24
StorageLive(_20); // scope 16 at $DIR/reference_prop.rs:+29:13: +29:18
_20 = &raw const _19; // scope 16 at $DIR/reference_prop.rs:+29:21: +29:33
StorageLive(_21); // scope 17 at $DIR/reference_prop.rs:+30:13: +30:14
_21 = &mut _20; // scope 17 at $DIR/reference_prop.rs:+30:17: +30:23
StorageLive(_22); // scope 18 at $DIR/reference_prop.rs:+31:13: +31:14
_22 = (*_20); // scope 18 at $DIR/reference_prop.rs:+31:17: +31:19
- _18 = const (); // scope 15 at $DIR/reference_prop.rs:+27:5: +32:6
StorageDead(_22); // scope 18 at $DIR/reference_prop.rs:+32:5: +32:6
StorageDead(_21); // scope 17 at $DIR/reference_prop.rs:+32:5: +32:6
StorageDead(_20); // scope 16 at $DIR/reference_prop.rs:+32:5: +32:6
StorageDead(_19); // scope 15 at $DIR/reference_prop.rs:+32:5: +32:6
- StorageDead(_18); // scope 0 at $DIR/reference_prop.rs:+32:5: +32:6
- StorageLive(_23); // scope 0 at $DIR/reference_prop.rs:+35:5: +40:6
StorageLive(_24); // scope 20 at $DIR/reference_prop.rs:+36:13: +36:14
_24 = const 7_usize; // scope 20 at $DIR/reference_prop.rs:+36:17: +36:24
StorageLive(_25); // scope 21 at $DIR/reference_prop.rs:+37:13: +37:14
_25 = &raw const _24; // scope 21 at $DIR/reference_prop.rs:+37:17: +37:29
StorageLive(_26); // scope 22 at $DIR/reference_prop.rs:+38:13: +38:14
- _26 = (*_25); // scope 22 at $DIR/reference_prop.rs:+38:17: +38:19
+ _26 = _24; // scope 22 at $DIR/reference_prop.rs:+38:17: +38:19
StorageLive(_27); // scope 23 at $DIR/reference_prop.rs:+39:9: +39:18
StorageLive(_28); // scope 23 at $DIR/reference_prop.rs:+39:16: +39:17
_28 = _25; // scope 23 at $DIR/reference_prop.rs:+39:16: +39:17
_27 = opaque::<*const usize>(move _28) -> bb1; // scope 23 at $DIR/reference_prop.rs:+39:9: +39:18
StorageLive(_7); // scope 4 at $DIR/reference_prop.rs:+6:9: +6:19
StorageLive(_8); // scope 4 at $DIR/reference_prop.rs:+6:16: +6:18
_8 = (); // scope 4 at $DIR/reference_prop.rs:+6:16: +6:18
_7 = opaque::<()>(move _8) -> bb1; // scope 4 at $DIR/reference_prop.rs:+6:9: +6:19
// mir::Constant
// + span: $DIR/reference_prop.rs:186:9: 186:15
// + literal: Const { ty: fn(*const usize) {opaque::<*const usize>}, val: Value(<ZST>) }
// + span: $DIR/reference_prop.rs:165:9: 165:15
// + literal: Const { ty: fn(()) {opaque::<()>}, val: Value(<ZST>) }
}
bb1: {
StorageDead(_28); // scope 23 at $DIR/reference_prop.rs:+39:17: +39:18
StorageDead(_27); // scope 23 at $DIR/reference_prop.rs:+39:18: +39:19
- _23 = const (); // scope 20 at $DIR/reference_prop.rs:+35:5: +40:6
StorageDead(_26); // scope 22 at $DIR/reference_prop.rs:+40:5: +40:6
StorageDead(_25); // scope 21 at $DIR/reference_prop.rs:+40:5: +40:6
StorageDead(_24); // scope 20 at $DIR/reference_prop.rs:+40:5: +40:6
- StorageDead(_23); // scope 0 at $DIR/reference_prop.rs:+40:5: +40:6
- StorageLive(_29); // scope 0 at $DIR/reference_prop.rs:+43:5: +53:6
StorageLive(_30); // scope 24 at $DIR/reference_prop.rs:+44:13: +44:14
_30 = const 7_usize; // scope 24 at $DIR/reference_prop.rs:+44:17: +44:24
StorageLive(_31); // scope 25 at $DIR/reference_prop.rs:+45:13: +45:15
_31 = &raw const _30; // scope 25 at $DIR/reference_prop.rs:+45:18: +45:30
StorageLive(_32); // scope 26 at $DIR/reference_prop.rs:+46:13: +46:14
- _32 = (*_31); // scope 26 at $DIR/reference_prop.rs:+46:17: +46:20
+ _32 = _30; // scope 26 at $DIR/reference_prop.rs:+46:17: +46:20
StorageLive(_33); // scope 27 at $DIR/reference_prop.rs:+47:13: +47:15
_33 = _31; // scope 27 at $DIR/reference_prop.rs:+47:18: +47:20
StorageLive(_34); // scope 28 at $DIR/reference_prop.rs:+48:13: +48:15
- _34 = (*_33); // scope 28 at $DIR/reference_prop.rs:+48:18: +48:21
+ _34 = _30; // scope 28 at $DIR/reference_prop.rs:+48:18: +48:21
StorageLive(_35); // scope 29 at $DIR/reference_prop.rs:+49:13: +49:15
_35 = _33; // scope 29 at $DIR/reference_prop.rs:+49:18: +49:20
StorageLive(_36); // scope 30 at $DIR/reference_prop.rs:+52:9: +52:19
StorageLive(_37); // scope 30 at $DIR/reference_prop.rs:+52:16: +52:18
_37 = _35; // scope 30 at $DIR/reference_prop.rs:+52:16: +52:18
_36 = opaque::<*const usize>(move _37) -> bb2; // scope 30 at $DIR/reference_prop.rs:+52:9: +52:19
StorageDead(_8); // scope 4 at $DIR/reference_prop.rs:+6:18: +6:19
StorageDead(_7); // scope 4 at $DIR/reference_prop.rs:+6:19: +6:20
- _3 = const (); // scope 1 at $DIR/reference_prop.rs:+2:5: +7:6
StorageDead(_6); // scope 3 at $DIR/reference_prop.rs:+7:5: +7:6
StorageDead(_5); // scope 2 at $DIR/reference_prop.rs:+7:5: +7:6
StorageDead(_4); // scope 1 at $DIR/reference_prop.rs:+7:5: +7:6
- StorageDead(_3); // scope 0 at $DIR/reference_prop.rs:+7:5: +7:6
- StorageLive(_9); // scope 0 at $DIR/reference_prop.rs:+10:5: +18:6
StorageLive(_10); // scope 5 at $DIR/reference_prop.rs:+11:13: +11:14
_10 = const 5_usize; // scope 5 at $DIR/reference_prop.rs:+11:17: +11:24
StorageLive(_11); // scope 6 at $DIR/reference_prop.rs:+12:13: +12:15
_11 = const 7_usize; // scope 6 at $DIR/reference_prop.rs:+12:18: +12:25
StorageLive(_12); // scope 7 at $DIR/reference_prop.rs:+13:13: +13:18
_12 = &raw const _10; // scope 7 at $DIR/reference_prop.rs:+13:21: +13:33
StorageLive(_13); // scope 8 at $DIR/reference_prop.rs:+14:13: +14:26
_13 = &raw const _11; // scope 8 at $DIR/reference_prop.rs:+14:13: +14:26
_12 = move _13; // scope 8 at $DIR/reference_prop.rs:+14:9: +14:26
StorageDead(_13); // scope 8 at $DIR/reference_prop.rs:+14:25: +14:26
StorageLive(_14); // scope 8 at $DIR/reference_prop.rs:+16:13: +16:14
_14 = (*_12); // scope 8 at $DIR/reference_prop.rs:+16:17: +16:19
StorageLive(_15); // scope 9 at $DIR/reference_prop.rs:+17:9: +17:19
StorageLive(_16); // scope 9 at $DIR/reference_prop.rs:+17:16: +17:18
_16 = (); // scope 9 at $DIR/reference_prop.rs:+17:16: +17:18
_15 = opaque::<()>(move _16) -> bb2; // scope 9 at $DIR/reference_prop.rs:+17:9: +17:19
// mir::Constant
// + span: $DIR/reference_prop.rs:199:9: 199:15
// + literal: Const { ty: fn(*const usize) {opaque::<*const usize>}, val: Value(<ZST>) }
// + span: $DIR/reference_prop.rs:176:9: 176:15
// + literal: Const { ty: fn(()) {opaque::<()>}, val: Value(<ZST>) }
}
bb2: {
StorageDead(_37); // scope 30 at $DIR/reference_prop.rs:+52:18: +52:19
StorageDead(_36); // scope 30 at $DIR/reference_prop.rs:+52:19: +52:20
- _29 = const (); // scope 24 at $DIR/reference_prop.rs:+43:5: +53:6
StorageDead(_35); // scope 29 at $DIR/reference_prop.rs:+53:5: +53:6
StorageDead(_34); // scope 28 at $DIR/reference_prop.rs:+53:5: +53:6
StorageDead(_33); // scope 27 at $DIR/reference_prop.rs:+53:5: +53:6
StorageDead(_32); // scope 26 at $DIR/reference_prop.rs:+53:5: +53:6
StorageDead(_31); // scope 25 at $DIR/reference_prop.rs:+53:5: +53:6
StorageDead(_30); // scope 24 at $DIR/reference_prop.rs:+53:5: +53:6
- StorageDead(_29); // scope 0 at $DIR/reference_prop.rs:+53:5: +53:6
- StorageLive(_38); // scope 0 at $DIR/reference_prop.rs:+56:5: +59:6
StorageLive(_39); // scope 31 at $DIR/reference_prop.rs:+57:13: +57:14
_39 = &raw const (*_1); // scope 31 at $DIR/reference_prop.rs:+57:17: +57:35
StorageLive(_40); // scope 32 at $DIR/reference_prop.rs:+58:13: +58:14
- _40 = (*_39); // scope 32 at $DIR/reference_prop.rs:+58:17: +58:19
- _38 = const (); // scope 31 at $DIR/reference_prop.rs:+56:5: +59:6
+ _40 = (*_1); // scope 32 at $DIR/reference_prop.rs:+58:17: +58:19
StorageDead(_40); // scope 32 at $DIR/reference_prop.rs:+59:5: +59:6
StorageDead(_39); // scope 31 at $DIR/reference_prop.rs:+59:5: +59:6
- StorageDead(_38); // scope 0 at $DIR/reference_prop.rs:+59:5: +59:6
- StorageLive(_41); // scope 0 at $DIR/reference_prop.rs:+62:5: +66:6
StorageLive(_42); // scope 34 at $DIR/reference_prop.rs:+63:13: +63:14
_42 = &raw const (*_2); // scope 34 at $DIR/reference_prop.rs:+63:17: +63:37
StorageLive(_43); // scope 35 at $DIR/reference_prop.rs:+64:20: +64:38
_43 = &raw const (*_1); // scope 35 at $DIR/reference_prop.rs:+64:20: +64:38
_2 = move _43; // scope 35 at $DIR/reference_prop.rs:+64:9: +64:38
StorageDead(_43); // scope 35 at $DIR/reference_prop.rs:+64:37: +64:38
StorageLive(_44); // scope 35 at $DIR/reference_prop.rs:+65:13: +65:14
_44 = (*_42); // scope 35 at $DIR/reference_prop.rs:+65:17: +65:19
- _41 = const (); // scope 34 at $DIR/reference_prop.rs:+62:5: +66:6
StorageDead(_44); // scope 35 at $DIR/reference_prop.rs:+66:5: +66:6
StorageDead(_42); // scope 34 at $DIR/reference_prop.rs:+66:5: +66:6
- StorageDead(_41); // scope 0 at $DIR/reference_prop.rs:+66:5: +66:6
StorageLive(_45); // scope 37 at $DIR/reference_prop.rs:+70:13: +70:14
_45 = const 13_usize; // scope 37 at $DIR/reference_prop.rs:+70:17: +70:25
StorageLive(_46); // scope 38 at $DIR/reference_prop.rs:+71:13: +71:14
_46 = &raw const _45; // scope 38 at $DIR/reference_prop.rs:+71:17: +71:29
StorageLive(_47); // scope 39 at $DIR/reference_prop.rs:+72:13: +72:14
- _47 = &raw const (*_46); // scope 39 at $DIR/reference_prop.rs:+72:17: +72:30
+ _47 = &raw const _45; // scope 39 at $DIR/reference_prop.rs:+72:17: +72:30
StorageLive(_48); // scope 40 at $DIR/reference_prop.rs:+73:13: +73:14
- _48 = (*_47); // scope 40 at $DIR/reference_prop.rs:+73:17: +73:19
+ _48 = _45; // scope 40 at $DIR/reference_prop.rs:+73:17: +73:19
_0 = const (); // scope 37 at $DIR/reference_prop.rs:+69:5: +74:6
StorageDead(_48); // scope 40 at $DIR/reference_prop.rs:+74:5: +74:6
StorageDead(_47); // scope 39 at $DIR/reference_prop.rs:+74:5: +74:6
StorageDead(_46); // scope 38 at $DIR/reference_prop.rs:+74:5: +74:6
StorageDead(_45); // scope 37 at $DIR/reference_prop.rs:+74:5: +74:6
return; // scope 0 at $DIR/reference_prop.rs:+75:2: +75:2
StorageDead(_16); // scope 9 at $DIR/reference_prop.rs:+17:18: +17:19
StorageDead(_15); // scope 9 at $DIR/reference_prop.rs:+17:19: +17:20
- _9 = const (); // scope 5 at $DIR/reference_prop.rs:+10:5: +18:6
StorageDead(_14); // scope 8 at $DIR/reference_prop.rs:+18:5: +18:6
StorageDead(_12); // scope 7 at $DIR/reference_prop.rs:+18:5: +18:6
StorageDead(_11); // scope 6 at $DIR/reference_prop.rs:+18:5: +18:6
StorageDead(_10); // scope 5 at $DIR/reference_prop.rs:+18:5: +18:6
- StorageDead(_9); // scope 0 at $DIR/reference_prop.rs:+18:5: +18:6
- StorageLive(_17); // scope 0 at $DIR/reference_prop.rs:+21:5: +27:6
StorageLive(_18); // scope 10 at $DIR/reference_prop.rs:+22:13: +22:14
_18 = const 5_usize; // scope 10 at $DIR/reference_prop.rs:+22:17: +22:24
StorageLive(_19); // scope 11 at $DIR/reference_prop.rs:+23:13: +23:14
_19 = &raw const _18; // scope 11 at $DIR/reference_prop.rs:+23:17: +23:29
StorageLive(_20); // scope 12 at $DIR/reference_prop.rs:+24:13: +24:14
_20 = &_19; // scope 12 at $DIR/reference_prop.rs:+24:17: +24:19
StorageLive(_21); // scope 13 at $DIR/reference_prop.rs:+25:13: +25:14
_21 = (*_19); // scope 13 at $DIR/reference_prop.rs:+25:17: +25:19
StorageLive(_22); // scope 14 at $DIR/reference_prop.rs:+26:9: +26:19
StorageLive(_23); // scope 14 at $DIR/reference_prop.rs:+26:16: +26:18
_23 = (); // scope 14 at $DIR/reference_prop.rs:+26:16: +26:18
_22 = opaque::<()>(move _23) -> bb3; // scope 14 at $DIR/reference_prop.rs:+26:9: +26:19
// mir::Constant
// + span: $DIR/reference_prop.rs:185:9: 185:15
// + literal: Const { ty: fn(()) {opaque::<()>}, val: Value(<ZST>) }
}
bb3: {
StorageDead(_23); // scope 14 at $DIR/reference_prop.rs:+26:18: +26:19
StorageDead(_22); // scope 14 at $DIR/reference_prop.rs:+26:19: +26:20
- _17 = const (); // scope 10 at $DIR/reference_prop.rs:+21:5: +27:6
StorageDead(_21); // scope 13 at $DIR/reference_prop.rs:+27:5: +27:6
StorageDead(_20); // scope 12 at $DIR/reference_prop.rs:+27:5: +27:6
StorageDead(_19); // scope 11 at $DIR/reference_prop.rs:+27:5: +27:6
StorageDead(_18); // scope 10 at $DIR/reference_prop.rs:+27:5: +27:6
- StorageDead(_17); // scope 0 at $DIR/reference_prop.rs:+27:5: +27:6
- StorageLive(_24); // scope 0 at $DIR/reference_prop.rs:+30:5: +36:6
StorageLive(_25); // scope 15 at $DIR/reference_prop.rs:+31:13: +31:14
_25 = const 5_usize; // scope 15 at $DIR/reference_prop.rs:+31:17: +31:24
StorageLive(_26); // scope 16 at $DIR/reference_prop.rs:+32:13: +32:18
_26 = &raw const _25; // scope 16 at $DIR/reference_prop.rs:+32:21: +32:33
StorageLive(_27); // scope 17 at $DIR/reference_prop.rs:+33:13: +33:14
_27 = &mut _26; // scope 17 at $DIR/reference_prop.rs:+33:17: +33:23
StorageLive(_28); // scope 18 at $DIR/reference_prop.rs:+34:13: +34:14
_28 = (*_26); // scope 18 at $DIR/reference_prop.rs:+34:17: +34:19
StorageLive(_29); // scope 19 at $DIR/reference_prop.rs:+35:9: +35:19
StorageLive(_30); // scope 19 at $DIR/reference_prop.rs:+35:16: +35:18
_30 = (); // scope 19 at $DIR/reference_prop.rs:+35:16: +35:18
_29 = opaque::<()>(move _30) -> bb4; // scope 19 at $DIR/reference_prop.rs:+35:9: +35:19
// mir::Constant
// + span: $DIR/reference_prop.rs:194:9: 194:15
// + literal: Const { ty: fn(()) {opaque::<()>}, val: Value(<ZST>) }
}
bb4: {
StorageDead(_30); // scope 19 at $DIR/reference_prop.rs:+35:18: +35:19
StorageDead(_29); // scope 19 at $DIR/reference_prop.rs:+35:19: +35:20
- _24 = const (); // scope 15 at $DIR/reference_prop.rs:+30:5: +36:6
StorageDead(_28); // scope 18 at $DIR/reference_prop.rs:+36:5: +36:6
StorageDead(_27); // scope 17 at $DIR/reference_prop.rs:+36:5: +36:6
StorageDead(_26); // scope 16 at $DIR/reference_prop.rs:+36:5: +36:6
StorageDead(_25); // scope 15 at $DIR/reference_prop.rs:+36:5: +36:6
- StorageDead(_24); // scope 0 at $DIR/reference_prop.rs:+36:5: +36:6
- StorageLive(_31); // scope 0 at $DIR/reference_prop.rs:+39:5: +44:6
StorageLive(_32); // scope 20 at $DIR/reference_prop.rs:+40:13: +40:14
_32 = const 7_usize; // scope 20 at $DIR/reference_prop.rs:+40:17: +40:24
StorageLive(_33); // scope 21 at $DIR/reference_prop.rs:+41:13: +41:14
_33 = &raw const _32; // scope 21 at $DIR/reference_prop.rs:+41:17: +41:29
StorageLive(_34); // scope 22 at $DIR/reference_prop.rs:+42:13: +42:14
- _34 = (*_33); // scope 22 at $DIR/reference_prop.rs:+42:17: +42:19
+ _34 = _32; // scope 22 at $DIR/reference_prop.rs:+42:17: +42:19
StorageLive(_35); // scope 23 at $DIR/reference_prop.rs:+43:9: +43:18
StorageLive(_36); // scope 23 at $DIR/reference_prop.rs:+43:16: +43:17
_36 = _33; // scope 23 at $DIR/reference_prop.rs:+43:16: +43:17
_35 = opaque::<*const usize>(move _36) -> bb5; // scope 23 at $DIR/reference_prop.rs:+43:9: +43:18
// mir::Constant
// + span: $DIR/reference_prop.rs:202:9: 202:15
// + literal: Const { ty: fn(*const usize) {opaque::<*const usize>}, val: Value(<ZST>) }
}
bb5: {
StorageDead(_36); // scope 23 at $DIR/reference_prop.rs:+43:17: +43:18
StorageDead(_35); // scope 23 at $DIR/reference_prop.rs:+43:18: +43:19
- _31 = const (); // scope 20 at $DIR/reference_prop.rs:+39:5: +44:6
StorageDead(_34); // scope 22 at $DIR/reference_prop.rs:+44:5: +44:6
StorageDead(_33); // scope 21 at $DIR/reference_prop.rs:+44:5: +44:6
StorageDead(_32); // scope 20 at $DIR/reference_prop.rs:+44:5: +44:6
- StorageDead(_31); // scope 0 at $DIR/reference_prop.rs:+44:5: +44:6
- StorageLive(_37); // scope 0 at $DIR/reference_prop.rs:+47:5: +57:6
StorageLive(_38); // scope 24 at $DIR/reference_prop.rs:+48:13: +48:14
_38 = const 7_usize; // scope 24 at $DIR/reference_prop.rs:+48:17: +48:24
StorageLive(_39); // scope 25 at $DIR/reference_prop.rs:+49:13: +49:15
_39 = &raw const _38; // scope 25 at $DIR/reference_prop.rs:+49:18: +49:30
StorageLive(_40); // scope 26 at $DIR/reference_prop.rs:+50:13: +50:14
- _40 = (*_39); // scope 26 at $DIR/reference_prop.rs:+50:17: +50:20
+ _40 = _38; // scope 26 at $DIR/reference_prop.rs:+50:17: +50:20
StorageLive(_41); // scope 27 at $DIR/reference_prop.rs:+51:13: +51:15
_41 = _39; // scope 27 at $DIR/reference_prop.rs:+51:18: +51:20
StorageLive(_42); // scope 28 at $DIR/reference_prop.rs:+52:13: +52:15
- _42 = (*_41); // scope 28 at $DIR/reference_prop.rs:+52:18: +52:21
+ _42 = _38; // scope 28 at $DIR/reference_prop.rs:+52:18: +52:21
StorageLive(_43); // scope 29 at $DIR/reference_prop.rs:+53:13: +53:15
_43 = _41; // scope 29 at $DIR/reference_prop.rs:+53:18: +53:20
StorageLive(_44); // scope 30 at $DIR/reference_prop.rs:+56:9: +56:19
StorageLive(_45); // scope 30 at $DIR/reference_prop.rs:+56:16: +56:18
_45 = _43; // scope 30 at $DIR/reference_prop.rs:+56:16: +56:18
_44 = opaque::<*const usize>(move _45) -> bb6; // scope 30 at $DIR/reference_prop.rs:+56:9: +56:19
// mir::Constant
// + span: $DIR/reference_prop.rs:215:9: 215:15
// + literal: Const { ty: fn(*const usize) {opaque::<*const usize>}, val: Value(<ZST>) }
}
bb6: {
StorageDead(_45); // scope 30 at $DIR/reference_prop.rs:+56:18: +56:19
StorageDead(_44); // scope 30 at $DIR/reference_prop.rs:+56:19: +56:20
- _37 = const (); // scope 24 at $DIR/reference_prop.rs:+47:5: +57:6
StorageDead(_43); // scope 29 at $DIR/reference_prop.rs:+57:5: +57:6
StorageDead(_42); // scope 28 at $DIR/reference_prop.rs:+57:5: +57:6
StorageDead(_41); // scope 27 at $DIR/reference_prop.rs:+57:5: +57:6
StorageDead(_40); // scope 26 at $DIR/reference_prop.rs:+57:5: +57:6
StorageDead(_39); // scope 25 at $DIR/reference_prop.rs:+57:5: +57:6
StorageDead(_38); // scope 24 at $DIR/reference_prop.rs:+57:5: +57:6
- StorageDead(_37); // scope 0 at $DIR/reference_prop.rs:+57:5: +57:6
- StorageLive(_46); // scope 0 at $DIR/reference_prop.rs:+60:5: +64:6
StorageLive(_47); // scope 31 at $DIR/reference_prop.rs:+61:13: +61:14
_47 = &raw const (*_1); // scope 31 at $DIR/reference_prop.rs:+61:17: +61:35
StorageLive(_48); // scope 32 at $DIR/reference_prop.rs:+62:13: +62:14
- _48 = (*_47); // scope 32 at $DIR/reference_prop.rs:+62:17: +62:19
+ _48 = (*_1); // scope 32 at $DIR/reference_prop.rs:+62:17: +62:19
StorageLive(_49); // scope 33 at $DIR/reference_prop.rs:+63:9: +63:19
StorageLive(_50); // scope 33 at $DIR/reference_prop.rs:+63:16: +63:18
_50 = (); // scope 33 at $DIR/reference_prop.rs:+63:16: +63:18
_49 = opaque::<()>(move _50) -> bb7; // scope 33 at $DIR/reference_prop.rs:+63:9: +63:19
// mir::Constant
// + span: $DIR/reference_prop.rs:222:9: 222:15
// + literal: Const { ty: fn(()) {opaque::<()>}, val: Value(<ZST>) }
}
bb7: {
StorageDead(_50); // scope 33 at $DIR/reference_prop.rs:+63:18: +63:19
StorageDead(_49); // scope 33 at $DIR/reference_prop.rs:+63:19: +63:20
- _46 = const (); // scope 31 at $DIR/reference_prop.rs:+60:5: +64:6
StorageDead(_48); // scope 32 at $DIR/reference_prop.rs:+64:5: +64:6
StorageDead(_47); // scope 31 at $DIR/reference_prop.rs:+64:5: +64:6
- StorageDead(_46); // scope 0 at $DIR/reference_prop.rs:+64:5: +64:6
- StorageLive(_51); // scope 0 at $DIR/reference_prop.rs:+67:5: +72:6
StorageLive(_52); // scope 34 at $DIR/reference_prop.rs:+68:13: +68:14
_52 = &raw const (*_2); // scope 34 at $DIR/reference_prop.rs:+68:17: +68:37
StorageLive(_53); // scope 35 at $DIR/reference_prop.rs:+69:20: +69:38
_53 = &raw const (*_1); // scope 35 at $DIR/reference_prop.rs:+69:20: +69:38
_2 = move _53; // scope 35 at $DIR/reference_prop.rs:+69:9: +69:38
StorageDead(_53); // scope 35 at $DIR/reference_prop.rs:+69:37: +69:38
StorageLive(_54); // scope 35 at $DIR/reference_prop.rs:+70:13: +70:14
_54 = (*_52); // scope 35 at $DIR/reference_prop.rs:+70:17: +70:19
StorageLive(_55); // scope 36 at $DIR/reference_prop.rs:+71:9: +71:19
StorageLive(_56); // scope 36 at $DIR/reference_prop.rs:+71:16: +71:18
_56 = (); // scope 36 at $DIR/reference_prop.rs:+71:16: +71:18
_55 = opaque::<()>(move _56) -> bb8; // scope 36 at $DIR/reference_prop.rs:+71:9: +71:19
// mir::Constant
// + span: $DIR/reference_prop.rs:230:9: 230:15
// + literal: Const { ty: fn(()) {opaque::<()>}, val: Value(<ZST>) }
}
bb8: {
StorageDead(_56); // scope 36 at $DIR/reference_prop.rs:+71:18: +71:19
StorageDead(_55); // scope 36 at $DIR/reference_prop.rs:+71:19: +71:20
- _51 = const (); // scope 34 at $DIR/reference_prop.rs:+67:5: +72:6
StorageDead(_54); // scope 35 at $DIR/reference_prop.rs:+72:5: +72:6
StorageDead(_52); // scope 34 at $DIR/reference_prop.rs:+72:5: +72:6
- StorageDead(_51); // scope 0 at $DIR/reference_prop.rs:+72:5: +72:6
StorageLive(_57); // scope 37 at $DIR/reference_prop.rs:+76:13: +76:14
_57 = const 13_usize; // scope 37 at $DIR/reference_prop.rs:+76:17: +76:25
StorageLive(_58); // scope 38 at $DIR/reference_prop.rs:+77:13: +77:14
_58 = &raw const _57; // scope 38 at $DIR/reference_prop.rs:+77:17: +77:29
StorageLive(_59); // scope 39 at $DIR/reference_prop.rs:+78:13: +78:14
- _59 = &raw const (*_58); // scope 39 at $DIR/reference_prop.rs:+78:17: +78:30
+ _59 = &raw const _57; // scope 39 at $DIR/reference_prop.rs:+78:17: +78:30
StorageLive(_60); // scope 40 at $DIR/reference_prop.rs:+79:13: +79:14
- _60 = (*_59); // scope 40 at $DIR/reference_prop.rs:+79:17: +79:19
+ _60 = _57; // scope 40 at $DIR/reference_prop.rs:+79:17: +79:19
StorageLive(_61); // scope 41 at $DIR/reference_prop.rs:+80:9: +80:19
StorageLive(_62); // scope 41 at $DIR/reference_prop.rs:+80:16: +80:18
_62 = (); // scope 41 at $DIR/reference_prop.rs:+80:16: +80:18
_61 = opaque::<()>(move _62) -> bb9; // scope 41 at $DIR/reference_prop.rs:+80:9: +80:19
// mir::Constant
// + span: $DIR/reference_prop.rs:239:9: 239:15
// + literal: Const { ty: fn(()) {opaque::<()>}, val: Value(<ZST>) }
}
bb9: {
StorageDead(_62); // scope 41 at $DIR/reference_prop.rs:+80:18: +80:19
StorageDead(_61); // scope 41 at $DIR/reference_prop.rs:+80:19: +80:20
_0 = const (); // scope 37 at $DIR/reference_prop.rs:+75:5: +81:6
StorageDead(_60); // scope 40 at $DIR/reference_prop.rs:+81:5: +81:6
StorageDead(_59); // scope 39 at $DIR/reference_prop.rs:+81:5: +81:6
StorageDead(_58); // scope 38 at $DIR/reference_prop.rs:+81:5: +81:6
StorageDead(_57); // scope 37 at $DIR/reference_prop.rs:+81:5: +81:6
return; // scope 0 at $DIR/reference_prop.rs:+82:2: +82:2
}
}

View File

@ -5,29 +5,41 @@
debug single => _1; // in scope 0 at $DIR/reference_prop.rs:+0:43: +0:49
debug multiple => _2; // in scope 0 at $DIR/reference_prop.rs:+0:62: +0:74
let mut _0: (); // return place in scope 0 at $DIR/reference_prop.rs:+0:87: +0:87
let _3: (); // in scope 0 at $DIR/reference_prop.rs:+2:5: +6:6
let _3: (); // in scope 0 at $DIR/reference_prop.rs:+2:5: +7:6
let mut _4: usize; // in scope 0 at $DIR/reference_prop.rs:+3:13: +3:18
let _7: (); // in scope 0 at $DIR/reference_prop.rs:+9:5: +16:6
let mut _8: usize; // in scope 0 at $DIR/reference_prop.rs:+10:13: +10:18
let mut _11: &mut usize; // in scope 0 at $DIR/reference_prop.rs:+13:13: +13:20
let mut _12: &mut usize; // in scope 0 at $DIR/reference_prop.rs:+13:13: +13:20
let _14: (); // in scope 0 at $DIR/reference_prop.rs:+19:5: +24:6
let mut _15: usize; // in scope 0 at $DIR/reference_prop.rs:+20:13: +20:18
let _19: (); // in scope 0 at $DIR/reference_prop.rs:+27:5: +32:6
let mut _20: usize; // in scope 0 at $DIR/reference_prop.rs:+28:13: +28:18
let _24: (); // in scope 0 at $DIR/reference_prop.rs:+35:5: +40:6
let mut _25: usize; // in scope 0 at $DIR/reference_prop.rs:+36:13: +36:18
let _28: (); // in scope 0 at $DIR/reference_prop.rs:+39:9: +39:18
let mut _29: &mut usize; // in scope 0 at $DIR/reference_prop.rs:+39:16: +39:17
let _30: (); // in scope 0 at $DIR/reference_prop.rs:+43:5: +53:6
let mut _31: usize; // in scope 0 at $DIR/reference_prop.rs:+44:13: +44:18
let _37: (); // in scope 0 at $DIR/reference_prop.rs:+52:9: +52:19
let mut _38: &mut usize; // in scope 0 at $DIR/reference_prop.rs:+52:16: +52:18
let _39: (); // in scope 0 at $DIR/reference_prop.rs:+56:5: +59:6
let _40: &mut T; // in scope 0 at $DIR/reference_prop.rs:+57:13: +57:14
let _42: &mut T; // in scope 0 at $DIR/reference_prop.rs:+63:13: +63:14
let mut _43: &mut T; // in scope 0 at $DIR/reference_prop.rs:+64:20: +64:32
let mut _44: &mut T; // in scope 0 at $DIR/reference_prop.rs:+64:20: +64:32
let _7: (); // in scope 0 at $DIR/reference_prop.rs:+6:9: +6:19
let mut _8: (); // in scope 0 at $DIR/reference_prop.rs:+6:16: +6:18
let _9: (); // in scope 0 at $DIR/reference_prop.rs:+10:5: +18:6
let mut _10: usize; // in scope 0 at $DIR/reference_prop.rs:+11:13: +11:18
let mut _13: &mut usize; // in scope 0 at $DIR/reference_prop.rs:+14:13: +14:20
let mut _14: &mut usize; // in scope 0 at $DIR/reference_prop.rs:+14:13: +14:20
let _16: (); // in scope 0 at $DIR/reference_prop.rs:+17:9: +17:19
let mut _17: (); // in scope 0 at $DIR/reference_prop.rs:+17:16: +17:18
let _18: (); // in scope 0 at $DIR/reference_prop.rs:+21:5: +27:6
let mut _19: usize; // in scope 0 at $DIR/reference_prop.rs:+22:13: +22:18
let _23: (); // in scope 0 at $DIR/reference_prop.rs:+26:9: +26:19
let mut _24: (); // in scope 0 at $DIR/reference_prop.rs:+26:16: +26:18
let _25: (); // in scope 0 at $DIR/reference_prop.rs:+30:5: +36:6
let mut _26: usize; // in scope 0 at $DIR/reference_prop.rs:+31:13: +31:18
let _30: (); // in scope 0 at $DIR/reference_prop.rs:+35:9: +35:19
let mut _31: (); // in scope 0 at $DIR/reference_prop.rs:+35:16: +35:18
let _32: (); // in scope 0 at $DIR/reference_prop.rs:+39:5: +44:6
let mut _33: usize; // in scope 0 at $DIR/reference_prop.rs:+40:13: +40:18
let _36: (); // in scope 0 at $DIR/reference_prop.rs:+43:9: +43:18
let mut _37: &mut usize; // in scope 0 at $DIR/reference_prop.rs:+43:16: +43:17
let _38: (); // in scope 0 at $DIR/reference_prop.rs:+47:5: +57:6
let mut _39: usize; // in scope 0 at $DIR/reference_prop.rs:+48:13: +48:18
let _45: (); // in scope 0 at $DIR/reference_prop.rs:+56:9: +56:19
let mut _46: &mut usize; // in scope 0 at $DIR/reference_prop.rs:+56:16: +56:18
let _47: (); // in scope 0 at $DIR/reference_prop.rs:+60:5: +64:6
let _48: &mut T; // in scope 0 at $DIR/reference_prop.rs:+61:13: +61:14
let _50: (); // in scope 0 at $DIR/reference_prop.rs:+63:9: +63:19
let mut _51: (); // in scope 0 at $DIR/reference_prop.rs:+63:16: +63:18
let _52: &mut T; // in scope 0 at $DIR/reference_prop.rs:+68:13: +68:14
let mut _53: &mut T; // in scope 0 at $DIR/reference_prop.rs:+69:20: +69:32
let mut _54: &mut T; // in scope 0 at $DIR/reference_prop.rs:+69:20: +69:32
let _56: (); // in scope 0 at $DIR/reference_prop.rs:+71:9: +71:19
let mut _57: (); // in scope 0 at $DIR/reference_prop.rs:+71:16: +71:18
scope 1 {
debug a => _4; // in scope 1 at $DIR/reference_prop.rs:+3:13: +3:18
let _5: &mut usize; // in scope 1 at $DIR/reference_prop.rs:+4:13: +4:14
@ -40,78 +52,78 @@
}
}
scope 4 {
debug a => _8; // in scope 4 at $DIR/reference_prop.rs:+10:13: +10:18
let mut _9: usize; // in scope 4 at $DIR/reference_prop.rs:+11:13: +11:19
debug a => _10; // in scope 4 at $DIR/reference_prop.rs:+11:13: +11:18
let mut _11: usize; // in scope 4 at $DIR/reference_prop.rs:+12:13: +12:19
scope 5 {
debug a2 => _9; // in scope 5 at $DIR/reference_prop.rs:+11:13: +11:19
let mut _10: &mut usize; // in scope 5 at $DIR/reference_prop.rs:+12:13: +12:18
debug a2 => _11; // in scope 5 at $DIR/reference_prop.rs:+12:13: +12:19
let mut _12: &mut usize; // in scope 5 at $DIR/reference_prop.rs:+13:13: +13:18
scope 6 {
debug b => _10; // in scope 6 at $DIR/reference_prop.rs:+12:13: +12:18
let _13: usize; // in scope 6 at $DIR/reference_prop.rs:+15:13: +15:14
debug b => _12; // in scope 6 at $DIR/reference_prop.rs:+13:13: +13:18
let _15: usize; // in scope 6 at $DIR/reference_prop.rs:+16:13: +16:14
scope 7 {
debug c => _13; // in scope 7 at $DIR/reference_prop.rs:+15:13: +15:14
debug c => _15; // in scope 7 at $DIR/reference_prop.rs:+16:13: +16:14
}
}
}
}
scope 8 {
debug a => _15; // in scope 8 at $DIR/reference_prop.rs:+20:13: +20:18
let _16: &mut usize; // in scope 8 at $DIR/reference_prop.rs:+21:13: +21:14
debug a => _19; // in scope 8 at $DIR/reference_prop.rs:+22:13: +22:18
let _20: &mut usize; // in scope 8 at $DIR/reference_prop.rs:+23:13: +23:14
scope 9 {
debug b => _16; // in scope 9 at $DIR/reference_prop.rs:+21:13: +21:14
let _17: &&mut usize; // in scope 9 at $DIR/reference_prop.rs:+22:13: +22:14
debug b => _20; // in scope 9 at $DIR/reference_prop.rs:+23:13: +23:14
let _21: &&mut usize; // in scope 9 at $DIR/reference_prop.rs:+24:13: +24:14
scope 10 {
debug d => _17; // in scope 10 at $DIR/reference_prop.rs:+22:13: +22:14
let _18: usize; // in scope 10 at $DIR/reference_prop.rs:+23:13: +23:14
debug d => _21; // in scope 10 at $DIR/reference_prop.rs:+24:13: +24:14
let _22: usize; // in scope 10 at $DIR/reference_prop.rs:+25:13: +25:14
scope 11 {
debug c => _18; // in scope 11 at $DIR/reference_prop.rs:+23:13: +23:14
debug c => _22; // in scope 11 at $DIR/reference_prop.rs:+25:13: +25:14
}
}
}
}
scope 12 {
debug a => _20; // in scope 12 at $DIR/reference_prop.rs:+28:13: +28:18
let mut _21: &mut usize; // in scope 12 at $DIR/reference_prop.rs:+29:13: +29:18
debug a => _26; // in scope 12 at $DIR/reference_prop.rs:+31:13: +31:18
let mut _27: &mut usize; // in scope 12 at $DIR/reference_prop.rs:+32:13: +32:18
scope 13 {
debug b => _21; // in scope 13 at $DIR/reference_prop.rs:+29:13: +29:18
let _22: &mut &mut usize; // in scope 13 at $DIR/reference_prop.rs:+30:13: +30:14
debug b => _27; // in scope 13 at $DIR/reference_prop.rs:+32:13: +32:18
let _28: &mut &mut usize; // in scope 13 at $DIR/reference_prop.rs:+33:13: +33:14
scope 14 {
debug d => _22; // in scope 14 at $DIR/reference_prop.rs:+30:13: +30:14
let _23: usize; // in scope 14 at $DIR/reference_prop.rs:+31:13: +31:14
debug d => _28; // in scope 14 at $DIR/reference_prop.rs:+33:13: +33:14
let _29: usize; // in scope 14 at $DIR/reference_prop.rs:+34:13: +34:14
scope 15 {
debug c => _23; // in scope 15 at $DIR/reference_prop.rs:+31:13: +31:14
debug c => _29; // in scope 15 at $DIR/reference_prop.rs:+34:13: +34:14
}
}
}
}
scope 16 {
debug a => _25; // in scope 16 at $DIR/reference_prop.rs:+36:13: +36:18
let _26: &mut usize; // in scope 16 at $DIR/reference_prop.rs:+37:13: +37:14
debug a => _33; // in scope 16 at $DIR/reference_prop.rs:+40:13: +40:18
let _34: &mut usize; // in scope 16 at $DIR/reference_prop.rs:+41:13: +41:14
scope 17 {
debug b => _26; // in scope 17 at $DIR/reference_prop.rs:+37:13: +37:14
let _27: usize; // in scope 17 at $DIR/reference_prop.rs:+38:13: +38:14
debug b => _34; // in scope 17 at $DIR/reference_prop.rs:+41:13: +41:14
let _35: usize; // in scope 17 at $DIR/reference_prop.rs:+42:13: +42:14
scope 18 {
debug c => _27; // in scope 18 at $DIR/reference_prop.rs:+38:13: +38:14
debug c => _35; // in scope 18 at $DIR/reference_prop.rs:+42:13: +42:14
}
}
}
scope 19 {
debug a => _31; // in scope 19 at $DIR/reference_prop.rs:+44:13: +44:18
let _32: &mut usize; // in scope 19 at $DIR/reference_prop.rs:+45:13: +45:15
debug a => _39; // in scope 19 at $DIR/reference_prop.rs:+48:13: +48:18
let _40: &mut usize; // in scope 19 at $DIR/reference_prop.rs:+49:13: +49:15
scope 20 {
debug b1 => _32; // in scope 20 at $DIR/reference_prop.rs:+45:13: +45:15
let _33: usize; // in scope 20 at $DIR/reference_prop.rs:+46:13: +46:14
debug b1 => _40; // in scope 20 at $DIR/reference_prop.rs:+49:13: +49:15
let _41: usize; // in scope 20 at $DIR/reference_prop.rs:+50:13: +50:14
scope 21 {
debug c => _33; // in scope 21 at $DIR/reference_prop.rs:+46:13: +46:14
let _34: &mut usize; // in scope 21 at $DIR/reference_prop.rs:+47:13: +47:15
debug c => _41; // in scope 21 at $DIR/reference_prop.rs:+50:13: +50:14
let _42: &mut usize; // in scope 21 at $DIR/reference_prop.rs:+51:13: +51:15
scope 22 {
debug b2 => _34; // in scope 22 at $DIR/reference_prop.rs:+47:13: +47:15
let _35: usize; // in scope 22 at $DIR/reference_prop.rs:+48:13: +48:15
debug b2 => _42; // in scope 22 at $DIR/reference_prop.rs:+51:13: +51:15
let _43: usize; // in scope 22 at $DIR/reference_prop.rs:+52:13: +52:15
scope 23 {
debug c2 => _35; // in scope 23 at $DIR/reference_prop.rs:+48:13: +48:15
let _36: &mut usize; // in scope 23 at $DIR/reference_prop.rs:+49:13: +49:15
debug c2 => _43; // in scope 23 at $DIR/reference_prop.rs:+52:13: +52:15
let _44: &mut usize; // in scope 23 at $DIR/reference_prop.rs:+53:13: +53:15
scope 24 {
debug b3 => _36; // in scope 24 at $DIR/reference_prop.rs:+49:13: +49:15
debug b3 => _44; // in scope 24 at $DIR/reference_prop.rs:+53:13: +53:15
}
}
}
@ -119,170 +131,242 @@
}
}
scope 25 {
debug a => _40; // in scope 25 at $DIR/reference_prop.rs:+57:13: +57:14
let _41: T; // in scope 25 at $DIR/reference_prop.rs:+58:13: +58:14
debug a => _48; // in scope 25 at $DIR/reference_prop.rs:+61:13: +61:14
let _49: T; // in scope 25 at $DIR/reference_prop.rs:+62:13: +62:14
scope 26 {
debug b => _41; // in scope 26 at $DIR/reference_prop.rs:+58:13: +58:14
debug b => _49; // in scope 26 at $DIR/reference_prop.rs:+62:13: +62:14
}
}
scope 27 {
debug a => _42; // in scope 27 at $DIR/reference_prop.rs:+63:13: +63:14
let _45: T; // in scope 27 at $DIR/reference_prop.rs:+65:13: +65:14
debug a => _52; // in scope 27 at $DIR/reference_prop.rs:+68:13: +68:14
let _55: T; // in scope 27 at $DIR/reference_prop.rs:+70:13: +70:14
scope 28 {
debug b => _45; // in scope 28 at $DIR/reference_prop.rs:+65:13: +65:14
debug b => _55; // in scope 28 at $DIR/reference_prop.rs:+70:13: +70:14
}
}
bb0: {
- StorageLive(_3); // scope 0 at $DIR/reference_prop.rs:+2:5: +6:6
- StorageLive(_3); // scope 0 at $DIR/reference_prop.rs:+2:5: +7:6
StorageLive(_4); // scope 0 at $DIR/reference_prop.rs:+3:13: +3:18
_4 = const 5_usize; // scope 0 at $DIR/reference_prop.rs:+3:21: +3:28
StorageLive(_5); // scope 1 at $DIR/reference_prop.rs:+4:13: +4:14
_5 = &mut _4; // scope 1 at $DIR/reference_prop.rs:+4:17: +4:23
StorageLive(_6); // scope 2 at $DIR/reference_prop.rs:+5:13: +5:14
- _6 = (*_5); // scope 2 at $DIR/reference_prop.rs:+5:17: +5:19
- _3 = const (); // scope 0 at $DIR/reference_prop.rs:+2:5: +6:6
+ _6 = _4; // scope 2 at $DIR/reference_prop.rs:+5:17: +5:19
StorageDead(_6); // scope 2 at $DIR/reference_prop.rs:+6:5: +6:6
StorageDead(_5); // scope 1 at $DIR/reference_prop.rs:+6:5: +6:6
StorageDead(_4); // scope 0 at $DIR/reference_prop.rs:+6:5: +6:6
- StorageDead(_3); // scope 0 at $DIR/reference_prop.rs:+6:5: +6:6
- StorageLive(_7); // scope 0 at $DIR/reference_prop.rs:+9:5: +16:6
StorageLive(_8); // scope 0 at $DIR/reference_prop.rs:+10:13: +10:18
_8 = const 5_usize; // scope 0 at $DIR/reference_prop.rs:+10:21: +10:28
StorageLive(_9); // scope 4 at $DIR/reference_prop.rs:+11:13: +11:19
_9 = const 7_usize; // scope 4 at $DIR/reference_prop.rs:+11:22: +11:29
StorageLive(_10); // scope 5 at $DIR/reference_prop.rs:+12:13: +12:18
_10 = &mut _8; // scope 5 at $DIR/reference_prop.rs:+12:21: +12:27
StorageLive(_11); // scope 6 at $DIR/reference_prop.rs:+13:13: +13:20
- StorageLive(_12); // scope 6 at $DIR/reference_prop.rs:+13:13: +13:20
- _12 = &mut _9; // scope 6 at $DIR/reference_prop.rs:+13:13: +13:20
- _11 = &mut (*_12); // scope 6 at $DIR/reference_prop.rs:+13:13: +13:20
+ _11 = &mut _9; // scope 6 at $DIR/reference_prop.rs:+13:13: +13:20
_10 = move _11; // scope 6 at $DIR/reference_prop.rs:+13:9: +13:20
StorageDead(_11); // scope 6 at $DIR/reference_prop.rs:+13:19: +13:20
- StorageDead(_12); // scope 6 at $DIR/reference_prop.rs:+13:20: +13:21
StorageLive(_13); // scope 6 at $DIR/reference_prop.rs:+15:13: +15:14
_13 = (*_10); // scope 6 at $DIR/reference_prop.rs:+15:17: +15:19
- _7 = const (); // scope 0 at $DIR/reference_prop.rs:+9:5: +16:6
StorageDead(_13); // scope 6 at $DIR/reference_prop.rs:+16:5: +16:6
StorageDead(_10); // scope 5 at $DIR/reference_prop.rs:+16:5: +16:6
StorageDead(_9); // scope 4 at $DIR/reference_prop.rs:+16:5: +16:6
StorageDead(_8); // scope 0 at $DIR/reference_prop.rs:+16:5: +16:6
- StorageDead(_7); // scope 0 at $DIR/reference_prop.rs:+16:5: +16:6
- StorageLive(_14); // scope 0 at $DIR/reference_prop.rs:+19:5: +24:6
StorageLive(_15); // scope 0 at $DIR/reference_prop.rs:+20:13: +20:18
_15 = const 5_usize; // scope 0 at $DIR/reference_prop.rs:+20:21: +20:28
StorageLive(_16); // scope 8 at $DIR/reference_prop.rs:+21:13: +21:14
_16 = &mut _15; // scope 8 at $DIR/reference_prop.rs:+21:17: +21:23
StorageLive(_17); // scope 9 at $DIR/reference_prop.rs:+22:13: +22:14
_17 = &_16; // scope 9 at $DIR/reference_prop.rs:+22:17: +22:19
StorageLive(_18); // scope 10 at $DIR/reference_prop.rs:+23:13: +23:14
_18 = (*_16); // scope 10 at $DIR/reference_prop.rs:+23:17: +23:19
- _14 = const (); // scope 0 at $DIR/reference_prop.rs:+19:5: +24:6
StorageDead(_18); // scope 10 at $DIR/reference_prop.rs:+24:5: +24:6
StorageDead(_17); // scope 9 at $DIR/reference_prop.rs:+24:5: +24:6
StorageDead(_16); // scope 8 at $DIR/reference_prop.rs:+24:5: +24:6
StorageDead(_15); // scope 0 at $DIR/reference_prop.rs:+24:5: +24:6
- StorageDead(_14); // scope 0 at $DIR/reference_prop.rs:+24:5: +24:6
- StorageLive(_19); // scope 0 at $DIR/reference_prop.rs:+27:5: +32:6
StorageLive(_20); // scope 0 at $DIR/reference_prop.rs:+28:13: +28:18
_20 = const 5_usize; // scope 0 at $DIR/reference_prop.rs:+28:21: +28:28
StorageLive(_21); // scope 12 at $DIR/reference_prop.rs:+29:13: +29:18
_21 = &mut _20; // scope 12 at $DIR/reference_prop.rs:+29:21: +29:27
StorageLive(_22); // scope 13 at $DIR/reference_prop.rs:+30:13: +30:14
_22 = &mut _21; // scope 13 at $DIR/reference_prop.rs:+30:17: +30:23
StorageLive(_23); // scope 14 at $DIR/reference_prop.rs:+31:13: +31:14
_23 = (*_21); // scope 14 at $DIR/reference_prop.rs:+31:17: +31:19
- _19 = const (); // scope 0 at $DIR/reference_prop.rs:+27:5: +32:6
StorageDead(_23); // scope 14 at $DIR/reference_prop.rs:+32:5: +32:6
StorageDead(_22); // scope 13 at $DIR/reference_prop.rs:+32:5: +32:6
StorageDead(_21); // scope 12 at $DIR/reference_prop.rs:+32:5: +32:6
StorageDead(_20); // scope 0 at $DIR/reference_prop.rs:+32:5: +32:6
- StorageDead(_19); // scope 0 at $DIR/reference_prop.rs:+32:5: +32:6
- StorageLive(_24); // scope 0 at $DIR/reference_prop.rs:+35:5: +40:6
StorageLive(_25); // scope 0 at $DIR/reference_prop.rs:+36:13: +36:18
_25 = const 7_usize; // scope 0 at $DIR/reference_prop.rs:+36:21: +36:28
StorageLive(_26); // scope 16 at $DIR/reference_prop.rs:+37:13: +37:14
_26 = &mut _25; // scope 16 at $DIR/reference_prop.rs:+37:17: +37:23
StorageLive(_27); // scope 17 at $DIR/reference_prop.rs:+38:13: +38:14
_27 = (*_26); // scope 17 at $DIR/reference_prop.rs:+38:17: +38:19
StorageLive(_28); // scope 18 at $DIR/reference_prop.rs:+39:9: +39:18
StorageLive(_29); // scope 18 at $DIR/reference_prop.rs:+39:16: +39:17
_29 = move _26; // scope 18 at $DIR/reference_prop.rs:+39:16: +39:17
_28 = opaque::<&mut usize>(move _29) -> bb1; // scope 18 at $DIR/reference_prop.rs:+39:9: +39:18
StorageLive(_7); // scope 3 at $DIR/reference_prop.rs:+6:9: +6:19
StorageLive(_8); // scope 3 at $DIR/reference_prop.rs:+6:16: +6:18
_8 = (); // scope 3 at $DIR/reference_prop.rs:+6:16: +6:18
_7 = opaque::<()>(move _8) -> bb1; // scope 3 at $DIR/reference_prop.rs:+6:9: +6:19
// mir::Constant
// + span: $DIR/reference_prop.rs:117:9: 117:15
// + literal: Const { ty: fn(&mut usize) {opaque::<&mut usize>}, val: Value(<ZST>) }
// + span: $DIR/reference_prop.rs:90:9: 90:15
// + literal: Const { ty: fn(()) {opaque::<()>}, val: Value(<ZST>) }
}
bb1: {
StorageDead(_29); // scope 18 at $DIR/reference_prop.rs:+39:17: +39:18
StorageDead(_28); // scope 18 at $DIR/reference_prop.rs:+39:18: +39:19
- _24 = const (); // scope 0 at $DIR/reference_prop.rs:+35:5: +40:6
StorageDead(_27); // scope 17 at $DIR/reference_prop.rs:+40:5: +40:6
StorageDead(_26); // scope 16 at $DIR/reference_prop.rs:+40:5: +40:6
StorageDead(_25); // scope 0 at $DIR/reference_prop.rs:+40:5: +40:6
- StorageDead(_24); // scope 0 at $DIR/reference_prop.rs:+40:5: +40:6
- StorageLive(_30); // scope 0 at $DIR/reference_prop.rs:+43:5: +53:6
StorageLive(_31); // scope 0 at $DIR/reference_prop.rs:+44:13: +44:18
_31 = const 7_usize; // scope 0 at $DIR/reference_prop.rs:+44:21: +44:28
StorageLive(_32); // scope 19 at $DIR/reference_prop.rs:+45:13: +45:15
_32 = &mut _31; // scope 19 at $DIR/reference_prop.rs:+45:18: +45:24
StorageLive(_33); // scope 20 at $DIR/reference_prop.rs:+46:13: +46:14
_33 = (*_32); // scope 20 at $DIR/reference_prop.rs:+46:17: +46:20
StorageLive(_34); // scope 21 at $DIR/reference_prop.rs:+47:13: +47:15
_34 = move _32; // scope 21 at $DIR/reference_prop.rs:+47:18: +47:20
StorageLive(_35); // scope 22 at $DIR/reference_prop.rs:+48:13: +48:15
_35 = (*_34); // scope 22 at $DIR/reference_prop.rs:+48:18: +48:21
StorageLive(_36); // scope 23 at $DIR/reference_prop.rs:+49:13: +49:15
_36 = move _34; // scope 23 at $DIR/reference_prop.rs:+49:18: +49:20
StorageLive(_37); // scope 24 at $DIR/reference_prop.rs:+52:9: +52:19
StorageLive(_38); // scope 24 at $DIR/reference_prop.rs:+52:16: +52:18
_38 = move _36; // scope 24 at $DIR/reference_prop.rs:+52:16: +52:18
_37 = opaque::<&mut usize>(move _38) -> bb2; // scope 24 at $DIR/reference_prop.rs:+52:9: +52:19
StorageDead(_8); // scope 3 at $DIR/reference_prop.rs:+6:18: +6:19
StorageDead(_7); // scope 3 at $DIR/reference_prop.rs:+6:19: +6:20
- _3 = const (); // scope 0 at $DIR/reference_prop.rs:+2:5: +7:6
StorageDead(_6); // scope 2 at $DIR/reference_prop.rs:+7:5: +7:6
StorageDead(_5); // scope 1 at $DIR/reference_prop.rs:+7:5: +7:6
StorageDead(_4); // scope 0 at $DIR/reference_prop.rs:+7:5: +7:6
- StorageDead(_3); // scope 0 at $DIR/reference_prop.rs:+7:5: +7:6
- StorageLive(_9); // scope 0 at $DIR/reference_prop.rs:+10:5: +18:6
StorageLive(_10); // scope 0 at $DIR/reference_prop.rs:+11:13: +11:18
_10 = const 5_usize; // scope 0 at $DIR/reference_prop.rs:+11:21: +11:28
StorageLive(_11); // scope 4 at $DIR/reference_prop.rs:+12:13: +12:19
_11 = const 7_usize; // scope 4 at $DIR/reference_prop.rs:+12:22: +12:29
StorageLive(_12); // scope 5 at $DIR/reference_prop.rs:+13:13: +13:18
_12 = &mut _10; // scope 5 at $DIR/reference_prop.rs:+13:21: +13:27
StorageLive(_13); // scope 6 at $DIR/reference_prop.rs:+14:13: +14:20
- StorageLive(_14); // scope 6 at $DIR/reference_prop.rs:+14:13: +14:20
- _14 = &mut _11; // scope 6 at $DIR/reference_prop.rs:+14:13: +14:20
- _13 = &mut (*_14); // scope 6 at $DIR/reference_prop.rs:+14:13: +14:20
+ _13 = &mut _11; // scope 6 at $DIR/reference_prop.rs:+14:13: +14:20
_12 = move _13; // scope 6 at $DIR/reference_prop.rs:+14:9: +14:20
StorageDead(_13); // scope 6 at $DIR/reference_prop.rs:+14:19: +14:20
- StorageDead(_14); // scope 6 at $DIR/reference_prop.rs:+14:20: +14:21
StorageLive(_15); // scope 6 at $DIR/reference_prop.rs:+16:13: +16:14
_15 = (*_12); // scope 6 at $DIR/reference_prop.rs:+16:17: +16:19
StorageLive(_16); // scope 7 at $DIR/reference_prop.rs:+17:9: +17:19
StorageLive(_17); // scope 7 at $DIR/reference_prop.rs:+17:16: +17:18
_17 = (); // scope 7 at $DIR/reference_prop.rs:+17:16: +17:18
_16 = opaque::<()>(move _17) -> bb2; // scope 7 at $DIR/reference_prop.rs:+17:9: +17:19
// mir::Constant
// + span: $DIR/reference_prop.rs:130:9: 130:15
// + literal: Const { ty: fn(&mut usize) {opaque::<&mut usize>}, val: Value(<ZST>) }
// + span: $DIR/reference_prop.rs:101:9: 101:15
// + literal: Const { ty: fn(()) {opaque::<()>}, val: Value(<ZST>) }
}
bb2: {
StorageDead(_38); // scope 24 at $DIR/reference_prop.rs:+52:18: +52:19
StorageDead(_37); // scope 24 at $DIR/reference_prop.rs:+52:19: +52:20
- _30 = const (); // scope 0 at $DIR/reference_prop.rs:+43:5: +53:6
StorageDead(_36); // scope 23 at $DIR/reference_prop.rs:+53:5: +53:6
StorageDead(_35); // scope 22 at $DIR/reference_prop.rs:+53:5: +53:6
StorageDead(_34); // scope 21 at $DIR/reference_prop.rs:+53:5: +53:6
StorageDead(_33); // scope 20 at $DIR/reference_prop.rs:+53:5: +53:6
StorageDead(_32); // scope 19 at $DIR/reference_prop.rs:+53:5: +53:6
StorageDead(_31); // scope 0 at $DIR/reference_prop.rs:+53:5: +53:6
- StorageDead(_30); // scope 0 at $DIR/reference_prop.rs:+53:5: +53:6
- StorageLive(_39); // scope 0 at $DIR/reference_prop.rs:+56:5: +59:6
StorageLive(_40); // scope 0 at $DIR/reference_prop.rs:+57:13: +57:14
_40 = &mut (*_1); // scope 0 at $DIR/reference_prop.rs:+57:17: +57:29
StorageLive(_41); // scope 25 at $DIR/reference_prop.rs:+58:13: +58:14
- _41 = (*_40); // scope 25 at $DIR/reference_prop.rs:+58:17: +58:19
- _39 = const (); // scope 0 at $DIR/reference_prop.rs:+56:5: +59:6
+ _41 = (*_1); // scope 25 at $DIR/reference_prop.rs:+58:17: +58:19
StorageDead(_41); // scope 25 at $DIR/reference_prop.rs:+59:5: +59:6
StorageDead(_40); // scope 0 at $DIR/reference_prop.rs:+59:5: +59:6
- StorageDead(_39); // scope 0 at $DIR/reference_prop.rs:+59:5: +59:6
StorageLive(_42); // scope 0 at $DIR/reference_prop.rs:+63:13: +63:14
_42 = &mut (*_2); // scope 0 at $DIR/reference_prop.rs:+63:17: +63:31
StorageLive(_43); // scope 27 at $DIR/reference_prop.rs:+64:20: +64:32
- StorageLive(_44); // scope 27 at $DIR/reference_prop.rs:+64:20: +64:32
- _44 = &mut (*_1); // scope 27 at $DIR/reference_prop.rs:+64:20: +64:32
- _43 = &mut (*_44); // scope 27 at $DIR/reference_prop.rs:+64:20: +64:32
+ _43 = &mut (*_1); // scope 27 at $DIR/reference_prop.rs:+64:20: +64:32
_2 = move _43; // scope 27 at $DIR/reference_prop.rs:+64:9: +64:32
StorageDead(_43); // scope 27 at $DIR/reference_prop.rs:+64:31: +64:32
- StorageDead(_44); // scope 27 at $DIR/reference_prop.rs:+64:32: +64:33
StorageLive(_45); // scope 27 at $DIR/reference_prop.rs:+65:13: +65:14
_45 = (*_42); // scope 27 at $DIR/reference_prop.rs:+65:17: +65:19
_0 = const (); // scope 0 at $DIR/reference_prop.rs:+62:5: +66:6
StorageDead(_45); // scope 27 at $DIR/reference_prop.rs:+66:5: +66:6
StorageDead(_42); // scope 0 at $DIR/reference_prop.rs:+66:5: +66:6
return; // scope 0 at $DIR/reference_prop.rs:+67:2: +67:2
StorageDead(_17); // scope 7 at $DIR/reference_prop.rs:+17:18: +17:19
StorageDead(_16); // scope 7 at $DIR/reference_prop.rs:+17:19: +17:20
- _9 = const (); // scope 0 at $DIR/reference_prop.rs:+10:5: +18:6
StorageDead(_15); // scope 6 at $DIR/reference_prop.rs:+18:5: +18:6
StorageDead(_12); // scope 5 at $DIR/reference_prop.rs:+18:5: +18:6
StorageDead(_11); // scope 4 at $DIR/reference_prop.rs:+18:5: +18:6
StorageDead(_10); // scope 0 at $DIR/reference_prop.rs:+18:5: +18:6
- StorageDead(_9); // scope 0 at $DIR/reference_prop.rs:+18:5: +18:6
- StorageLive(_18); // scope 0 at $DIR/reference_prop.rs:+21:5: +27:6
StorageLive(_19); // scope 0 at $DIR/reference_prop.rs:+22:13: +22:18
_19 = const 5_usize; // scope 0 at $DIR/reference_prop.rs:+22:21: +22:28
StorageLive(_20); // scope 8 at $DIR/reference_prop.rs:+23:13: +23:14
_20 = &mut _19; // scope 8 at $DIR/reference_prop.rs:+23:17: +23:23
StorageLive(_21); // scope 9 at $DIR/reference_prop.rs:+24:13: +24:14
_21 = &_20; // scope 9 at $DIR/reference_prop.rs:+24:17: +24:19
StorageLive(_22); // scope 10 at $DIR/reference_prop.rs:+25:13: +25:14
_22 = (*_20); // scope 10 at $DIR/reference_prop.rs:+25:17: +25:19
StorageLive(_23); // scope 11 at $DIR/reference_prop.rs:+26:9: +26:19
StorageLive(_24); // scope 11 at $DIR/reference_prop.rs:+26:16: +26:18
_24 = (); // scope 11 at $DIR/reference_prop.rs:+26:16: +26:18
_23 = opaque::<()>(move _24) -> bb3; // scope 11 at $DIR/reference_prop.rs:+26:9: +26:19
// mir::Constant
// + span: $DIR/reference_prop.rs:110:9: 110:15
// + literal: Const { ty: fn(()) {opaque::<()>}, val: Value(<ZST>) }
}
bb3: {
StorageDead(_24); // scope 11 at $DIR/reference_prop.rs:+26:18: +26:19
StorageDead(_23); // scope 11 at $DIR/reference_prop.rs:+26:19: +26:20
- _18 = const (); // scope 0 at $DIR/reference_prop.rs:+21:5: +27:6
StorageDead(_22); // scope 10 at $DIR/reference_prop.rs:+27:5: +27:6
StorageDead(_21); // scope 9 at $DIR/reference_prop.rs:+27:5: +27:6
StorageDead(_20); // scope 8 at $DIR/reference_prop.rs:+27:5: +27:6
StorageDead(_19); // scope 0 at $DIR/reference_prop.rs:+27:5: +27:6
- StorageDead(_18); // scope 0 at $DIR/reference_prop.rs:+27:5: +27:6
- StorageLive(_25); // scope 0 at $DIR/reference_prop.rs:+30:5: +36:6
StorageLive(_26); // scope 0 at $DIR/reference_prop.rs:+31:13: +31:18
_26 = const 5_usize; // scope 0 at $DIR/reference_prop.rs:+31:21: +31:28
StorageLive(_27); // scope 12 at $DIR/reference_prop.rs:+32:13: +32:18
_27 = &mut _26; // scope 12 at $DIR/reference_prop.rs:+32:21: +32:27
StorageLive(_28); // scope 13 at $DIR/reference_prop.rs:+33:13: +33:14
_28 = &mut _27; // scope 13 at $DIR/reference_prop.rs:+33:17: +33:23
StorageLive(_29); // scope 14 at $DIR/reference_prop.rs:+34:13: +34:14
_29 = (*_27); // scope 14 at $DIR/reference_prop.rs:+34:17: +34:19
StorageLive(_30); // scope 15 at $DIR/reference_prop.rs:+35:9: +35:19
StorageLive(_31); // scope 15 at $DIR/reference_prop.rs:+35:16: +35:18
_31 = (); // scope 15 at $DIR/reference_prop.rs:+35:16: +35:18
_30 = opaque::<()>(move _31) -> bb4; // scope 15 at $DIR/reference_prop.rs:+35:9: +35:19
// mir::Constant
// + span: $DIR/reference_prop.rs:119:9: 119:15
// + literal: Const { ty: fn(()) {opaque::<()>}, val: Value(<ZST>) }
}
bb4: {
StorageDead(_31); // scope 15 at $DIR/reference_prop.rs:+35:18: +35:19
StorageDead(_30); // scope 15 at $DIR/reference_prop.rs:+35:19: +35:20
- _25 = const (); // scope 0 at $DIR/reference_prop.rs:+30:5: +36:6
StorageDead(_29); // scope 14 at $DIR/reference_prop.rs:+36:5: +36:6
StorageDead(_28); // scope 13 at $DIR/reference_prop.rs:+36:5: +36:6
StorageDead(_27); // scope 12 at $DIR/reference_prop.rs:+36:5: +36:6
StorageDead(_26); // scope 0 at $DIR/reference_prop.rs:+36:5: +36:6
- StorageDead(_25); // scope 0 at $DIR/reference_prop.rs:+36:5: +36:6
- StorageLive(_32); // scope 0 at $DIR/reference_prop.rs:+39:5: +44:6
StorageLive(_33); // scope 0 at $DIR/reference_prop.rs:+40:13: +40:18
_33 = const 7_usize; // scope 0 at $DIR/reference_prop.rs:+40:21: +40:28
StorageLive(_34); // scope 16 at $DIR/reference_prop.rs:+41:13: +41:14
_34 = &mut _33; // scope 16 at $DIR/reference_prop.rs:+41:17: +41:23
StorageLive(_35); // scope 17 at $DIR/reference_prop.rs:+42:13: +42:14
_35 = (*_34); // scope 17 at $DIR/reference_prop.rs:+42:17: +42:19
StorageLive(_36); // scope 18 at $DIR/reference_prop.rs:+43:9: +43:18
StorageLive(_37); // scope 18 at $DIR/reference_prop.rs:+43:16: +43:17
_37 = move _34; // scope 18 at $DIR/reference_prop.rs:+43:16: +43:17
_36 = opaque::<&mut usize>(move _37) -> bb5; // scope 18 at $DIR/reference_prop.rs:+43:9: +43:18
// mir::Constant
// + span: $DIR/reference_prop.rs:127:9: 127:15
// + literal: Const { ty: fn(&mut usize) {opaque::<&mut usize>}, val: Value(<ZST>) }
}
bb5: {
StorageDead(_37); // scope 18 at $DIR/reference_prop.rs:+43:17: +43:18
StorageDead(_36); // scope 18 at $DIR/reference_prop.rs:+43:18: +43:19
- _32 = const (); // scope 0 at $DIR/reference_prop.rs:+39:5: +44:6
StorageDead(_35); // scope 17 at $DIR/reference_prop.rs:+44:5: +44:6
StorageDead(_34); // scope 16 at $DIR/reference_prop.rs:+44:5: +44:6
StorageDead(_33); // scope 0 at $DIR/reference_prop.rs:+44:5: +44:6
- StorageDead(_32); // scope 0 at $DIR/reference_prop.rs:+44:5: +44:6
- StorageLive(_38); // scope 0 at $DIR/reference_prop.rs:+47:5: +57:6
StorageLive(_39); // scope 0 at $DIR/reference_prop.rs:+48:13: +48:18
_39 = const 7_usize; // scope 0 at $DIR/reference_prop.rs:+48:21: +48:28
StorageLive(_40); // scope 19 at $DIR/reference_prop.rs:+49:13: +49:15
_40 = &mut _39; // scope 19 at $DIR/reference_prop.rs:+49:18: +49:24
StorageLive(_41); // scope 20 at $DIR/reference_prop.rs:+50:13: +50:14
_41 = (*_40); // scope 20 at $DIR/reference_prop.rs:+50:17: +50:20
StorageLive(_42); // scope 21 at $DIR/reference_prop.rs:+51:13: +51:15
_42 = move _40; // scope 21 at $DIR/reference_prop.rs:+51:18: +51:20
StorageLive(_43); // scope 22 at $DIR/reference_prop.rs:+52:13: +52:15
_43 = (*_42); // scope 22 at $DIR/reference_prop.rs:+52:18: +52:21
StorageLive(_44); // scope 23 at $DIR/reference_prop.rs:+53:13: +53:15
_44 = move _42; // scope 23 at $DIR/reference_prop.rs:+53:18: +53:20
StorageLive(_45); // scope 24 at $DIR/reference_prop.rs:+56:9: +56:19
StorageLive(_46); // scope 24 at $DIR/reference_prop.rs:+56:16: +56:18
_46 = move _44; // scope 24 at $DIR/reference_prop.rs:+56:16: +56:18
_45 = opaque::<&mut usize>(move _46) -> bb6; // scope 24 at $DIR/reference_prop.rs:+56:9: +56:19
// mir::Constant
// + span: $DIR/reference_prop.rs:140:9: 140:15
// + literal: Const { ty: fn(&mut usize) {opaque::<&mut usize>}, val: Value(<ZST>) }
}
bb6: {
StorageDead(_46); // scope 24 at $DIR/reference_prop.rs:+56:18: +56:19
StorageDead(_45); // scope 24 at $DIR/reference_prop.rs:+56:19: +56:20
- _38 = const (); // scope 0 at $DIR/reference_prop.rs:+47:5: +57:6
StorageDead(_44); // scope 23 at $DIR/reference_prop.rs:+57:5: +57:6
StorageDead(_43); // scope 22 at $DIR/reference_prop.rs:+57:5: +57:6
StorageDead(_42); // scope 21 at $DIR/reference_prop.rs:+57:5: +57:6
StorageDead(_41); // scope 20 at $DIR/reference_prop.rs:+57:5: +57:6
StorageDead(_40); // scope 19 at $DIR/reference_prop.rs:+57:5: +57:6
StorageDead(_39); // scope 0 at $DIR/reference_prop.rs:+57:5: +57:6
- StorageDead(_38); // scope 0 at $DIR/reference_prop.rs:+57:5: +57:6
- StorageLive(_47); // scope 0 at $DIR/reference_prop.rs:+60:5: +64:6
StorageLive(_48); // scope 0 at $DIR/reference_prop.rs:+61:13: +61:14
_48 = &mut (*_1); // scope 0 at $DIR/reference_prop.rs:+61:17: +61:29
StorageLive(_49); // scope 25 at $DIR/reference_prop.rs:+62:13: +62:14
- _49 = (*_48); // scope 25 at $DIR/reference_prop.rs:+62:17: +62:19
+ _49 = (*_1); // scope 25 at $DIR/reference_prop.rs:+62:17: +62:19
StorageLive(_50); // scope 26 at $DIR/reference_prop.rs:+63:9: +63:19
StorageLive(_51); // scope 26 at $DIR/reference_prop.rs:+63:16: +63:18
_51 = (); // scope 26 at $DIR/reference_prop.rs:+63:16: +63:18
_50 = opaque::<()>(move _51) -> bb7; // scope 26 at $DIR/reference_prop.rs:+63:9: +63:19
// mir::Constant
// + span: $DIR/reference_prop.rs:147:9: 147:15
// + literal: Const { ty: fn(()) {opaque::<()>}, val: Value(<ZST>) }
}
bb7: {
StorageDead(_51); // scope 26 at $DIR/reference_prop.rs:+63:18: +63:19
StorageDead(_50); // scope 26 at $DIR/reference_prop.rs:+63:19: +63:20
- _47 = const (); // scope 0 at $DIR/reference_prop.rs:+60:5: +64:6
StorageDead(_49); // scope 25 at $DIR/reference_prop.rs:+64:5: +64:6
StorageDead(_48); // scope 0 at $DIR/reference_prop.rs:+64:5: +64:6
- StorageDead(_47); // scope 0 at $DIR/reference_prop.rs:+64:5: +64:6
StorageLive(_52); // scope 0 at $DIR/reference_prop.rs:+68:13: +68:14
_52 = &mut (*_2); // scope 0 at $DIR/reference_prop.rs:+68:17: +68:31
StorageLive(_53); // scope 27 at $DIR/reference_prop.rs:+69:20: +69:32
- StorageLive(_54); // scope 27 at $DIR/reference_prop.rs:+69:20: +69:32
- _54 = &mut (*_1); // scope 27 at $DIR/reference_prop.rs:+69:20: +69:32
- _53 = &mut (*_54); // scope 27 at $DIR/reference_prop.rs:+69:20: +69:32
+ _53 = &mut (*_1); // scope 27 at $DIR/reference_prop.rs:+69:20: +69:32
_2 = move _53; // scope 27 at $DIR/reference_prop.rs:+69:9: +69:32
StorageDead(_53); // scope 27 at $DIR/reference_prop.rs:+69:31: +69:32
- StorageDead(_54); // scope 27 at $DIR/reference_prop.rs:+69:32: +69:33
StorageLive(_55); // scope 27 at $DIR/reference_prop.rs:+70:13: +70:14
_55 = (*_52); // scope 27 at $DIR/reference_prop.rs:+70:17: +70:19
StorageLive(_56); // scope 28 at $DIR/reference_prop.rs:+71:9: +71:19
StorageLive(_57); // scope 28 at $DIR/reference_prop.rs:+71:16: +71:18
_57 = (); // scope 28 at $DIR/reference_prop.rs:+71:16: +71:18
_56 = opaque::<()>(move _57) -> bb8; // scope 28 at $DIR/reference_prop.rs:+71:9: +71:19
// mir::Constant
// + span: $DIR/reference_prop.rs:155:9: 155:15
// + literal: Const { ty: fn(()) {opaque::<()>}, val: Value(<ZST>) }
}
bb8: {
StorageDead(_57); // scope 28 at $DIR/reference_prop.rs:+71:18: +71:19
StorageDead(_56); // scope 28 at $DIR/reference_prop.rs:+71:19: +71:20
_0 = const (); // scope 0 at $DIR/reference_prop.rs:+67:5: +72:6
StorageDead(_55); // scope 27 at $DIR/reference_prop.rs:+72:5: +72:6
StorageDead(_52); // scope 0 at $DIR/reference_prop.rs:+72:5: +72:6
return; // scope 0 at $DIR/reference_prop.rs:+73:2: +73:2
}
}

View File

@ -5,19 +5,31 @@
debug single => _1; // in scope 0 at $DIR/reference_prop.rs:+0:43: +0:49
debug multiple => _2; // in scope 0 at $DIR/reference_prop.rs:+0:59: +0:71
let mut _0: (); // return place in scope 0 at $DIR/reference_prop.rs:+0:81: +0:81
let _3: (); // in scope 0 at $DIR/reference_prop.rs:+2:5: +6:6
let _7: (); // in scope 0 at $DIR/reference_prop.rs:+9:5: +16:6
let mut _11: *mut usize; // in scope 0 at $DIR/reference_prop.rs:+13:13: +13:24
let _13: (); // in scope 0 at $DIR/reference_prop.rs:+19:5: +24:6
let _18: (); // in scope 0 at $DIR/reference_prop.rs:+27:5: +32:6
let _23: (); // in scope 0 at $DIR/reference_prop.rs:+35:5: +40:6
let _27: (); // in scope 0 at $DIR/reference_prop.rs:+39:9: +39:18
let mut _28: *mut usize; // in scope 0 at $DIR/reference_prop.rs:+39:16: +39:17
let _29: (); // in scope 0 at $DIR/reference_prop.rs:+43:5: +53:6
let _36: (); // in scope 0 at $DIR/reference_prop.rs:+52:9: +52:19
let mut _37: *mut usize; // in scope 0 at $DIR/reference_prop.rs:+52:16: +52:18
let _38: (); // in scope 0 at $DIR/reference_prop.rs:+56:5: +59:6
let mut _42: *mut T; // in scope 0 at $DIR/reference_prop.rs:+64:20: +64:36
let _3: (); // in scope 0 at $DIR/reference_prop.rs:+2:5: +7:6
let _7: (); // in scope 0 at $DIR/reference_prop.rs:+6:9: +6:19
let mut _8: (); // in scope 0 at $DIR/reference_prop.rs:+6:16: +6:18
let _9: (); // in scope 0 at $DIR/reference_prop.rs:+10:5: +18:6
let mut _13: *mut usize; // in scope 0 at $DIR/reference_prop.rs:+14:13: +14:24
let _15: (); // in scope 0 at $DIR/reference_prop.rs:+17:9: +17:19
let mut _16: (); // in scope 0 at $DIR/reference_prop.rs:+17:16: +17:18
let _17: (); // in scope 0 at $DIR/reference_prop.rs:+21:5: +27:6
let _22: (); // in scope 0 at $DIR/reference_prop.rs:+26:9: +26:19
let mut _23: (); // in scope 0 at $DIR/reference_prop.rs:+26:16: +26:18
let _24: (); // in scope 0 at $DIR/reference_prop.rs:+30:5: +36:6
let _29: (); // in scope 0 at $DIR/reference_prop.rs:+35:9: +35:19
let mut _30: (); // in scope 0 at $DIR/reference_prop.rs:+35:16: +35:18
let _31: (); // in scope 0 at $DIR/reference_prop.rs:+39:5: +44:6
let _35: (); // in scope 0 at $DIR/reference_prop.rs:+43:9: +43:18
let mut _36: *mut usize; // in scope 0 at $DIR/reference_prop.rs:+43:16: +43:17
let _37: (); // in scope 0 at $DIR/reference_prop.rs:+47:5: +57:6
let _44: (); // in scope 0 at $DIR/reference_prop.rs:+56:9: +56:19
let mut _45: *mut usize; // in scope 0 at $DIR/reference_prop.rs:+56:16: +56:18
let _46: (); // in scope 0 at $DIR/reference_prop.rs:+60:5: +64:6
let _49: (); // in scope 0 at $DIR/reference_prop.rs:+63:9: +63:19
let mut _50: (); // in scope 0 at $DIR/reference_prop.rs:+63:16: +63:18
let mut _52: *mut T; // in scope 0 at $DIR/reference_prop.rs:+69:20: +69:36
let _54: (); // in scope 0 at $DIR/reference_prop.rs:+71:9: +71:19
let mut _55: (); // in scope 0 at $DIR/reference_prop.rs:+71:16: +71:18
scope 1 {
let mut _4: usize; // in scope 1 at $DIR/reference_prop.rs:+3:13: +3:18
scope 2 {
@ -33,92 +45,92 @@
}
}
scope 5 {
let mut _8: usize; // in scope 5 at $DIR/reference_prop.rs:+10:13: +10:18
let mut _10: usize; // in scope 5 at $DIR/reference_prop.rs:+11:13: +11:18
scope 6 {
debug a => _8; // in scope 6 at $DIR/reference_prop.rs:+10:13: +10:18
let mut _9: usize; // in scope 6 at $DIR/reference_prop.rs:+11:13: +11:19
debug a => _10; // in scope 6 at $DIR/reference_prop.rs:+11:13: +11:18
let mut _11: usize; // in scope 6 at $DIR/reference_prop.rs:+12:13: +12:19
scope 7 {
debug a2 => _9; // in scope 7 at $DIR/reference_prop.rs:+11:13: +11:19
let mut _10: *mut usize; // in scope 7 at $DIR/reference_prop.rs:+12:13: +12:18
debug a2 => _11; // in scope 7 at $DIR/reference_prop.rs:+12:13: +12:19
let mut _12: *mut usize; // in scope 7 at $DIR/reference_prop.rs:+13:13: +13:18
scope 8 {
debug b => _10; // in scope 8 at $DIR/reference_prop.rs:+12:13: +12:18
let _12: usize; // in scope 8 at $DIR/reference_prop.rs:+15:13: +15:14
debug b => _12; // in scope 8 at $DIR/reference_prop.rs:+13:13: +13:18
let _14: usize; // in scope 8 at $DIR/reference_prop.rs:+16:13: +16:14
scope 9 {
debug c => _12; // in scope 9 at $DIR/reference_prop.rs:+15:13: +15:14
debug c => _14; // in scope 9 at $DIR/reference_prop.rs:+16:13: +16:14
}
}
}
}
}
scope 10 {
let mut _14: usize; // in scope 10 at $DIR/reference_prop.rs:+20:13: +20:18
let mut _18: usize; // in scope 10 at $DIR/reference_prop.rs:+22:13: +22:18
scope 11 {
debug a => _14; // in scope 11 at $DIR/reference_prop.rs:+20:13: +20:18
let _15: *mut usize; // in scope 11 at $DIR/reference_prop.rs:+21:13: +21:14
debug a => _18; // in scope 11 at $DIR/reference_prop.rs:+22:13: +22:18
let _19: *mut usize; // in scope 11 at $DIR/reference_prop.rs:+23:13: +23:14
scope 12 {
debug b => _15; // in scope 12 at $DIR/reference_prop.rs:+21:13: +21:14
let _16: &*mut usize; // in scope 12 at $DIR/reference_prop.rs:+22:13: +22:14
debug b => _19; // in scope 12 at $DIR/reference_prop.rs:+23:13: +23:14
let _20: &*mut usize; // in scope 12 at $DIR/reference_prop.rs:+24:13: +24:14
scope 13 {
debug d => _16; // in scope 13 at $DIR/reference_prop.rs:+22:13: +22:14
let _17: usize; // in scope 13 at $DIR/reference_prop.rs:+23:13: +23:14
debug d => _20; // in scope 13 at $DIR/reference_prop.rs:+24:13: +24:14
let _21: usize; // in scope 13 at $DIR/reference_prop.rs:+25:13: +25:14
scope 14 {
debug c => _17; // in scope 14 at $DIR/reference_prop.rs:+23:13: +23:14
debug c => _21; // in scope 14 at $DIR/reference_prop.rs:+25:13: +25:14
}
}
}
}
}
scope 15 {
let mut _19: usize; // in scope 15 at $DIR/reference_prop.rs:+28:13: +28:18
let mut _25: usize; // in scope 15 at $DIR/reference_prop.rs:+31:13: +31:18
scope 16 {
debug a => _19; // in scope 16 at $DIR/reference_prop.rs:+28:13: +28:18
let mut _20: *mut usize; // in scope 16 at $DIR/reference_prop.rs:+29:13: +29:18
debug a => _25; // in scope 16 at $DIR/reference_prop.rs:+31:13: +31:18
let mut _26: *mut usize; // in scope 16 at $DIR/reference_prop.rs:+32:13: +32:18
scope 17 {
debug b => _20; // in scope 17 at $DIR/reference_prop.rs:+29:13: +29:18
let _21: &mut *mut usize; // in scope 17 at $DIR/reference_prop.rs:+30:13: +30:14
debug b => _26; // in scope 17 at $DIR/reference_prop.rs:+32:13: +32:18
let _27: &mut *mut usize; // in scope 17 at $DIR/reference_prop.rs:+33:13: +33:14
scope 18 {
debug d => _21; // in scope 18 at $DIR/reference_prop.rs:+30:13: +30:14
let _22: usize; // in scope 18 at $DIR/reference_prop.rs:+31:13: +31:14
debug d => _27; // in scope 18 at $DIR/reference_prop.rs:+33:13: +33:14
let _28: usize; // in scope 18 at $DIR/reference_prop.rs:+34:13: +34:14
scope 19 {
debug c => _22; // in scope 19 at $DIR/reference_prop.rs:+31:13: +31:14
debug c => _28; // in scope 19 at $DIR/reference_prop.rs:+34:13: +34:14
}
}
}
}
}
scope 20 {
let mut _24: usize; // in scope 20 at $DIR/reference_prop.rs:+36:13: +36:18
let mut _32: usize; // in scope 20 at $DIR/reference_prop.rs:+40:13: +40:18
scope 21 {
debug a => _24; // in scope 21 at $DIR/reference_prop.rs:+36:13: +36:18
let _25: *mut usize; // in scope 21 at $DIR/reference_prop.rs:+37:13: +37:14
debug a => _32; // in scope 21 at $DIR/reference_prop.rs:+40:13: +40:18
let _33: *mut usize; // in scope 21 at $DIR/reference_prop.rs:+41:13: +41:14
scope 22 {
debug b => _25; // in scope 22 at $DIR/reference_prop.rs:+37:13: +37:14
let _26: usize; // in scope 22 at $DIR/reference_prop.rs:+38:13: +38:14
debug b => _33; // in scope 22 at $DIR/reference_prop.rs:+41:13: +41:14
let _34: usize; // in scope 22 at $DIR/reference_prop.rs:+42:13: +42:14
scope 23 {
debug c => _26; // in scope 23 at $DIR/reference_prop.rs:+38:13: +38:14
debug c => _34; // in scope 23 at $DIR/reference_prop.rs:+42:13: +42:14
}
}
}
}
scope 24 {
let mut _30: usize; // in scope 24 at $DIR/reference_prop.rs:+44:13: +44:18
let mut _38: usize; // in scope 24 at $DIR/reference_prop.rs:+48:13: +48:18
scope 25 {
debug a => _30; // in scope 25 at $DIR/reference_prop.rs:+44:13: +44:18
let _31: *mut usize; // in scope 25 at $DIR/reference_prop.rs:+45:13: +45:15
debug a => _38; // in scope 25 at $DIR/reference_prop.rs:+48:13: +48:18
let _39: *mut usize; // in scope 25 at $DIR/reference_prop.rs:+49:13: +49:15
scope 26 {
debug b1 => _31; // in scope 26 at $DIR/reference_prop.rs:+45:13: +45:15
let _32: usize; // in scope 26 at $DIR/reference_prop.rs:+46:13: +46:14
debug b1 => _39; // in scope 26 at $DIR/reference_prop.rs:+49:13: +49:15
let _40: usize; // in scope 26 at $DIR/reference_prop.rs:+50:13: +50:14
scope 27 {
debug c => _32; // in scope 27 at $DIR/reference_prop.rs:+46:13: +46:14
let _33: *mut usize; // in scope 27 at $DIR/reference_prop.rs:+47:13: +47:15
debug c => _40; // in scope 27 at $DIR/reference_prop.rs:+50:13: +50:14
let _41: *mut usize; // in scope 27 at $DIR/reference_prop.rs:+51:13: +51:15
scope 28 {
debug b2 => _33; // in scope 28 at $DIR/reference_prop.rs:+47:13: +47:15
let _34: usize; // in scope 28 at $DIR/reference_prop.rs:+48:13: +48:15
debug b2 => _41; // in scope 28 at $DIR/reference_prop.rs:+51:13: +51:15
let _42: usize; // in scope 28 at $DIR/reference_prop.rs:+52:13: +52:15
scope 29 {
debug c2 => _34; // in scope 29 at $DIR/reference_prop.rs:+48:13: +48:15
let _35: *mut usize; // in scope 29 at $DIR/reference_prop.rs:+49:13: +49:15
debug c2 => _42; // in scope 29 at $DIR/reference_prop.rs:+52:13: +52:15
let _43: *mut usize; // in scope 29 at $DIR/reference_prop.rs:+53:13: +53:15
scope 30 {
debug b3 => _35; // in scope 30 at $DIR/reference_prop.rs:+49:13: +49:15
debug b3 => _43; // in scope 30 at $DIR/reference_prop.rs:+53:13: +53:15
}
}
}
@ -127,168 +139,240 @@
}
}
scope 31 {
let _39: *mut T; // in scope 31 at $DIR/reference_prop.rs:+57:13: +57:14
let _47: *mut T; // in scope 31 at $DIR/reference_prop.rs:+61:13: +61:14
scope 32 {
debug a => _39; // in scope 32 at $DIR/reference_prop.rs:+57:13: +57:14
let _40: T; // in scope 32 at $DIR/reference_prop.rs:+58:13: +58:14
debug a => _47; // in scope 32 at $DIR/reference_prop.rs:+61:13: +61:14
let _48: T; // in scope 32 at $DIR/reference_prop.rs:+62:13: +62:14
scope 33 {
debug b => _40; // in scope 33 at $DIR/reference_prop.rs:+58:13: +58:14
debug b => _48; // in scope 33 at $DIR/reference_prop.rs:+62:13: +62:14
}
}
}
scope 34 {
let _41: *mut T; // in scope 34 at $DIR/reference_prop.rs:+63:13: +63:14
let _51: *mut T; // in scope 34 at $DIR/reference_prop.rs:+68:13: +68:14
scope 35 {
debug a => _41; // in scope 35 at $DIR/reference_prop.rs:+63:13: +63:14
let _43: T; // in scope 35 at $DIR/reference_prop.rs:+65:13: +65:14
debug a => _51; // in scope 35 at $DIR/reference_prop.rs:+68:13: +68:14
let _53: T; // in scope 35 at $DIR/reference_prop.rs:+70:13: +70:14
scope 36 {
debug b => _43; // in scope 36 at $DIR/reference_prop.rs:+65:13: +65:14
debug b => _53; // in scope 36 at $DIR/reference_prop.rs:+70:13: +70:14
}
}
}
bb0: {
- StorageLive(_3); // scope 0 at $DIR/reference_prop.rs:+2:5: +6:6
- StorageLive(_3); // scope 0 at $DIR/reference_prop.rs:+2:5: +7:6
StorageLive(_4); // scope 1 at $DIR/reference_prop.rs:+3:13: +3:18
_4 = const 5_usize; // scope 1 at $DIR/reference_prop.rs:+3:21: +3:28
StorageLive(_5); // scope 2 at $DIR/reference_prop.rs:+4:13: +4:14
_5 = &raw mut _4; // scope 2 at $DIR/reference_prop.rs:+4:17: +4:27
StorageLive(_6); // scope 3 at $DIR/reference_prop.rs:+5:13: +5:14
- _6 = (*_5); // scope 3 at $DIR/reference_prop.rs:+5:17: +5:19
- _3 = const (); // scope 1 at $DIR/reference_prop.rs:+2:5: +6:6
+ _6 = _4; // scope 3 at $DIR/reference_prop.rs:+5:17: +5:19
StorageDead(_6); // scope 3 at $DIR/reference_prop.rs:+6:5: +6:6
StorageDead(_5); // scope 2 at $DIR/reference_prop.rs:+6:5: +6:6
StorageDead(_4); // scope 1 at $DIR/reference_prop.rs:+6:5: +6:6
- StorageDead(_3); // scope 0 at $DIR/reference_prop.rs:+6:5: +6:6
- StorageLive(_7); // scope 0 at $DIR/reference_prop.rs:+9:5: +16:6
StorageLive(_8); // scope 5 at $DIR/reference_prop.rs:+10:13: +10:18
_8 = const 5_usize; // scope 5 at $DIR/reference_prop.rs:+10:21: +10:28
StorageLive(_9); // scope 6 at $DIR/reference_prop.rs:+11:13: +11:19
_9 = const 7_usize; // scope 6 at $DIR/reference_prop.rs:+11:22: +11:29
StorageLive(_10); // scope 7 at $DIR/reference_prop.rs:+12:13: +12:18
_10 = &raw mut _8; // scope 7 at $DIR/reference_prop.rs:+12:21: +12:31
StorageLive(_11); // scope 8 at $DIR/reference_prop.rs:+13:13: +13:24
_11 = &raw mut _9; // scope 8 at $DIR/reference_prop.rs:+13:13: +13:24
_10 = move _11; // scope 8 at $DIR/reference_prop.rs:+13:9: +13:24
StorageDead(_11); // scope 8 at $DIR/reference_prop.rs:+13:23: +13:24
StorageLive(_12); // scope 8 at $DIR/reference_prop.rs:+15:13: +15:14
_12 = (*_10); // scope 8 at $DIR/reference_prop.rs:+15:17: +15:19
- _7 = const (); // scope 5 at $DIR/reference_prop.rs:+9:5: +16:6
StorageDead(_12); // scope 8 at $DIR/reference_prop.rs:+16:5: +16:6
StorageDead(_10); // scope 7 at $DIR/reference_prop.rs:+16:5: +16:6
StorageDead(_9); // scope 6 at $DIR/reference_prop.rs:+16:5: +16:6
StorageDead(_8); // scope 5 at $DIR/reference_prop.rs:+16:5: +16:6
- StorageDead(_7); // scope 0 at $DIR/reference_prop.rs:+16:5: +16:6
- StorageLive(_13); // scope 0 at $DIR/reference_prop.rs:+19:5: +24:6
StorageLive(_14); // scope 10 at $DIR/reference_prop.rs:+20:13: +20:18
_14 = const 5_usize; // scope 10 at $DIR/reference_prop.rs:+20:21: +20:28
StorageLive(_15); // scope 11 at $DIR/reference_prop.rs:+21:13: +21:14
_15 = &raw mut _14; // scope 11 at $DIR/reference_prop.rs:+21:17: +21:27
StorageLive(_16); // scope 12 at $DIR/reference_prop.rs:+22:13: +22:14
_16 = &_15; // scope 12 at $DIR/reference_prop.rs:+22:17: +22:19
StorageLive(_17); // scope 13 at $DIR/reference_prop.rs:+23:13: +23:14
_17 = (*_15); // scope 13 at $DIR/reference_prop.rs:+23:17: +23:19
- _13 = const (); // scope 10 at $DIR/reference_prop.rs:+19:5: +24:6
StorageDead(_17); // scope 13 at $DIR/reference_prop.rs:+24:5: +24:6
StorageDead(_16); // scope 12 at $DIR/reference_prop.rs:+24:5: +24:6
StorageDead(_15); // scope 11 at $DIR/reference_prop.rs:+24:5: +24:6
StorageDead(_14); // scope 10 at $DIR/reference_prop.rs:+24:5: +24:6
- StorageDead(_13); // scope 0 at $DIR/reference_prop.rs:+24:5: +24:6
- StorageLive(_18); // scope 0 at $DIR/reference_prop.rs:+27:5: +32:6
StorageLive(_19); // scope 15 at $DIR/reference_prop.rs:+28:13: +28:18
_19 = const 5_usize; // scope 15 at $DIR/reference_prop.rs:+28:21: +28:28
StorageLive(_20); // scope 16 at $DIR/reference_prop.rs:+29:13: +29:18
_20 = &raw mut _19; // scope 16 at $DIR/reference_prop.rs:+29:21: +29:31
StorageLive(_21); // scope 17 at $DIR/reference_prop.rs:+30:13: +30:14
_21 = &mut _20; // scope 17 at $DIR/reference_prop.rs:+30:17: +30:23
StorageLive(_22); // scope 18 at $DIR/reference_prop.rs:+31:13: +31:14
_22 = (*_20); // scope 18 at $DIR/reference_prop.rs:+31:17: +31:19
- _18 = const (); // scope 15 at $DIR/reference_prop.rs:+27:5: +32:6
StorageDead(_22); // scope 18 at $DIR/reference_prop.rs:+32:5: +32:6
StorageDead(_21); // scope 17 at $DIR/reference_prop.rs:+32:5: +32:6
StorageDead(_20); // scope 16 at $DIR/reference_prop.rs:+32:5: +32:6
StorageDead(_19); // scope 15 at $DIR/reference_prop.rs:+32:5: +32:6
- StorageDead(_18); // scope 0 at $DIR/reference_prop.rs:+32:5: +32:6
- StorageLive(_23); // scope 0 at $DIR/reference_prop.rs:+35:5: +40:6
StorageLive(_24); // scope 20 at $DIR/reference_prop.rs:+36:13: +36:18
_24 = const 7_usize; // scope 20 at $DIR/reference_prop.rs:+36:21: +36:28
StorageLive(_25); // scope 21 at $DIR/reference_prop.rs:+37:13: +37:14
_25 = &raw mut _24; // scope 21 at $DIR/reference_prop.rs:+37:17: +37:27
StorageLive(_26); // scope 22 at $DIR/reference_prop.rs:+38:13: +38:14
_26 = (*_25); // scope 22 at $DIR/reference_prop.rs:+38:17: +38:19
StorageLive(_27); // scope 23 at $DIR/reference_prop.rs:+39:9: +39:18
StorageLive(_28); // scope 23 at $DIR/reference_prop.rs:+39:16: +39:17
_28 = _25; // scope 23 at $DIR/reference_prop.rs:+39:16: +39:17
_27 = opaque::<*mut usize>(move _28) -> bb1; // scope 23 at $DIR/reference_prop.rs:+39:9: +39:18
StorageLive(_7); // scope 4 at $DIR/reference_prop.rs:+6:9: +6:19
StorageLive(_8); // scope 4 at $DIR/reference_prop.rs:+6:16: +6:18
_8 = (); // scope 4 at $DIR/reference_prop.rs:+6:16: +6:18
_7 = opaque::<()>(move _8) -> bb1; // scope 4 at $DIR/reference_prop.rs:+6:9: +6:19
// mir::Constant
// + span: $DIR/reference_prop.rs:263:9: 263:15
// + literal: Const { ty: fn(*mut usize) {opaque::<*mut usize>}, val: Value(<ZST>) }
// + span: $DIR/reference_prop.rs:249:9: 249:15
// + literal: Const { ty: fn(()) {opaque::<()>}, val: Value(<ZST>) }
}
bb1: {
StorageDead(_28); // scope 23 at $DIR/reference_prop.rs:+39:17: +39:18
StorageDead(_27); // scope 23 at $DIR/reference_prop.rs:+39:18: +39:19
- _23 = const (); // scope 20 at $DIR/reference_prop.rs:+35:5: +40:6
StorageDead(_26); // scope 22 at $DIR/reference_prop.rs:+40:5: +40:6
StorageDead(_25); // scope 21 at $DIR/reference_prop.rs:+40:5: +40:6
StorageDead(_24); // scope 20 at $DIR/reference_prop.rs:+40:5: +40:6
- StorageDead(_23); // scope 0 at $DIR/reference_prop.rs:+40:5: +40:6
- StorageLive(_29); // scope 0 at $DIR/reference_prop.rs:+43:5: +53:6
StorageLive(_30); // scope 24 at $DIR/reference_prop.rs:+44:13: +44:18
_30 = const 7_usize; // scope 24 at $DIR/reference_prop.rs:+44:21: +44:28
StorageLive(_31); // scope 25 at $DIR/reference_prop.rs:+45:13: +45:15
_31 = &raw mut _30; // scope 25 at $DIR/reference_prop.rs:+45:18: +45:28
StorageLive(_32); // scope 26 at $DIR/reference_prop.rs:+46:13: +46:14
_32 = (*_31); // scope 26 at $DIR/reference_prop.rs:+46:17: +46:20
StorageLive(_33); // scope 27 at $DIR/reference_prop.rs:+47:13: +47:15
_33 = _31; // scope 27 at $DIR/reference_prop.rs:+47:18: +47:20
StorageLive(_34); // scope 28 at $DIR/reference_prop.rs:+48:13: +48:15
_34 = (*_33); // scope 28 at $DIR/reference_prop.rs:+48:18: +48:21
StorageLive(_35); // scope 29 at $DIR/reference_prop.rs:+49:13: +49:15
_35 = _33; // scope 29 at $DIR/reference_prop.rs:+49:18: +49:20
StorageLive(_36); // scope 30 at $DIR/reference_prop.rs:+52:9: +52:19
StorageLive(_37); // scope 30 at $DIR/reference_prop.rs:+52:16: +52:18
_37 = _35; // scope 30 at $DIR/reference_prop.rs:+52:16: +52:18
_36 = opaque::<*mut usize>(move _37) -> bb2; // scope 30 at $DIR/reference_prop.rs:+52:9: +52:19
StorageDead(_8); // scope 4 at $DIR/reference_prop.rs:+6:18: +6:19
StorageDead(_7); // scope 4 at $DIR/reference_prop.rs:+6:19: +6:20
- _3 = const (); // scope 1 at $DIR/reference_prop.rs:+2:5: +7:6
StorageDead(_6); // scope 3 at $DIR/reference_prop.rs:+7:5: +7:6
StorageDead(_5); // scope 2 at $DIR/reference_prop.rs:+7:5: +7:6
StorageDead(_4); // scope 1 at $DIR/reference_prop.rs:+7:5: +7:6
- StorageDead(_3); // scope 0 at $DIR/reference_prop.rs:+7:5: +7:6
- StorageLive(_9); // scope 0 at $DIR/reference_prop.rs:+10:5: +18:6
StorageLive(_10); // scope 5 at $DIR/reference_prop.rs:+11:13: +11:18
_10 = const 5_usize; // scope 5 at $DIR/reference_prop.rs:+11:21: +11:28
StorageLive(_11); // scope 6 at $DIR/reference_prop.rs:+12:13: +12:19
_11 = const 7_usize; // scope 6 at $DIR/reference_prop.rs:+12:22: +12:29
StorageLive(_12); // scope 7 at $DIR/reference_prop.rs:+13:13: +13:18
_12 = &raw mut _10; // scope 7 at $DIR/reference_prop.rs:+13:21: +13:31
StorageLive(_13); // scope 8 at $DIR/reference_prop.rs:+14:13: +14:24
_13 = &raw mut _11; // scope 8 at $DIR/reference_prop.rs:+14:13: +14:24
_12 = move _13; // scope 8 at $DIR/reference_prop.rs:+14:9: +14:24
StorageDead(_13); // scope 8 at $DIR/reference_prop.rs:+14:23: +14:24
StorageLive(_14); // scope 8 at $DIR/reference_prop.rs:+16:13: +16:14
_14 = (*_12); // scope 8 at $DIR/reference_prop.rs:+16:17: +16:19
StorageLive(_15); // scope 9 at $DIR/reference_prop.rs:+17:9: +17:19
StorageLive(_16); // scope 9 at $DIR/reference_prop.rs:+17:16: +17:18
_16 = (); // scope 9 at $DIR/reference_prop.rs:+17:16: +17:18
_15 = opaque::<()>(move _16) -> bb2; // scope 9 at $DIR/reference_prop.rs:+17:9: +17:19
// mir::Constant
// + span: $DIR/reference_prop.rs:276:9: 276:15
// + literal: Const { ty: fn(*mut usize) {opaque::<*mut usize>}, val: Value(<ZST>) }
// + span: $DIR/reference_prop.rs:260:9: 260:15
// + literal: Const { ty: fn(()) {opaque::<()>}, val: Value(<ZST>) }
}
bb2: {
StorageDead(_37); // scope 30 at $DIR/reference_prop.rs:+52:18: +52:19
StorageDead(_36); // scope 30 at $DIR/reference_prop.rs:+52:19: +52:20
- _29 = const (); // scope 24 at $DIR/reference_prop.rs:+43:5: +53:6
StorageDead(_35); // scope 29 at $DIR/reference_prop.rs:+53:5: +53:6
StorageDead(_34); // scope 28 at $DIR/reference_prop.rs:+53:5: +53:6
StorageDead(_33); // scope 27 at $DIR/reference_prop.rs:+53:5: +53:6
StorageDead(_32); // scope 26 at $DIR/reference_prop.rs:+53:5: +53:6
StorageDead(_31); // scope 25 at $DIR/reference_prop.rs:+53:5: +53:6
StorageDead(_30); // scope 24 at $DIR/reference_prop.rs:+53:5: +53:6
- StorageDead(_29); // scope 0 at $DIR/reference_prop.rs:+53:5: +53:6
- StorageLive(_38); // scope 0 at $DIR/reference_prop.rs:+56:5: +59:6
StorageLive(_39); // scope 31 at $DIR/reference_prop.rs:+57:13: +57:14
_39 = &raw mut (*_1); // scope 31 at $DIR/reference_prop.rs:+57:17: +57:33
StorageLive(_40); // scope 32 at $DIR/reference_prop.rs:+58:13: +58:14
- _40 = (*_39); // scope 32 at $DIR/reference_prop.rs:+58:17: +58:19
- _38 = const (); // scope 31 at $DIR/reference_prop.rs:+56:5: +59:6
+ _40 = (*_1); // scope 32 at $DIR/reference_prop.rs:+58:17: +58:19
StorageDead(_40); // scope 32 at $DIR/reference_prop.rs:+59:5: +59:6
StorageDead(_39); // scope 31 at $DIR/reference_prop.rs:+59:5: +59:6
- StorageDead(_38); // scope 0 at $DIR/reference_prop.rs:+59:5: +59:6
StorageLive(_41); // scope 34 at $DIR/reference_prop.rs:+63:13: +63:14
_41 = &raw mut (*_2); // scope 34 at $DIR/reference_prop.rs:+63:17: +63:35
StorageLive(_42); // scope 35 at $DIR/reference_prop.rs:+64:20: +64:36
_42 = &raw mut (*_1); // scope 35 at $DIR/reference_prop.rs:+64:20: +64:36
_2 = move _42; // scope 35 at $DIR/reference_prop.rs:+64:9: +64:36
StorageDead(_42); // scope 35 at $DIR/reference_prop.rs:+64:35: +64:36
StorageLive(_43); // scope 35 at $DIR/reference_prop.rs:+65:13: +65:14
_43 = (*_41); // scope 35 at $DIR/reference_prop.rs:+65:17: +65:19
_0 = const (); // scope 34 at $DIR/reference_prop.rs:+62:5: +66:6
StorageDead(_43); // scope 35 at $DIR/reference_prop.rs:+66:5: +66:6
StorageDead(_41); // scope 34 at $DIR/reference_prop.rs:+66:5: +66:6
return; // scope 0 at $DIR/reference_prop.rs:+67:2: +67:2
StorageDead(_16); // scope 9 at $DIR/reference_prop.rs:+17:18: +17:19
StorageDead(_15); // scope 9 at $DIR/reference_prop.rs:+17:19: +17:20
- _9 = const (); // scope 5 at $DIR/reference_prop.rs:+10:5: +18:6
StorageDead(_14); // scope 8 at $DIR/reference_prop.rs:+18:5: +18:6
StorageDead(_12); // scope 7 at $DIR/reference_prop.rs:+18:5: +18:6
StorageDead(_11); // scope 6 at $DIR/reference_prop.rs:+18:5: +18:6
StorageDead(_10); // scope 5 at $DIR/reference_prop.rs:+18:5: +18:6
- StorageDead(_9); // scope 0 at $DIR/reference_prop.rs:+18:5: +18:6
- StorageLive(_17); // scope 0 at $DIR/reference_prop.rs:+21:5: +27:6
StorageLive(_18); // scope 10 at $DIR/reference_prop.rs:+22:13: +22:18
_18 = const 5_usize; // scope 10 at $DIR/reference_prop.rs:+22:21: +22:28
StorageLive(_19); // scope 11 at $DIR/reference_prop.rs:+23:13: +23:14
_19 = &raw mut _18; // scope 11 at $DIR/reference_prop.rs:+23:17: +23:27
StorageLive(_20); // scope 12 at $DIR/reference_prop.rs:+24:13: +24:14
_20 = &_19; // scope 12 at $DIR/reference_prop.rs:+24:17: +24:19
StorageLive(_21); // scope 13 at $DIR/reference_prop.rs:+25:13: +25:14
_21 = (*_19); // scope 13 at $DIR/reference_prop.rs:+25:17: +25:19
StorageLive(_22); // scope 14 at $DIR/reference_prop.rs:+26:9: +26:19
StorageLive(_23); // scope 14 at $DIR/reference_prop.rs:+26:16: +26:18
_23 = (); // scope 14 at $DIR/reference_prop.rs:+26:16: +26:18
_22 = opaque::<()>(move _23) -> bb3; // scope 14 at $DIR/reference_prop.rs:+26:9: +26:19
// mir::Constant
// + span: $DIR/reference_prop.rs:269:9: 269:15
// + literal: Const { ty: fn(()) {opaque::<()>}, val: Value(<ZST>) }
}
bb3: {
StorageDead(_23); // scope 14 at $DIR/reference_prop.rs:+26:18: +26:19
StorageDead(_22); // scope 14 at $DIR/reference_prop.rs:+26:19: +26:20
- _17 = const (); // scope 10 at $DIR/reference_prop.rs:+21:5: +27:6
StorageDead(_21); // scope 13 at $DIR/reference_prop.rs:+27:5: +27:6
StorageDead(_20); // scope 12 at $DIR/reference_prop.rs:+27:5: +27:6
StorageDead(_19); // scope 11 at $DIR/reference_prop.rs:+27:5: +27:6
StorageDead(_18); // scope 10 at $DIR/reference_prop.rs:+27:5: +27:6
- StorageDead(_17); // scope 0 at $DIR/reference_prop.rs:+27:5: +27:6
- StorageLive(_24); // scope 0 at $DIR/reference_prop.rs:+30:5: +36:6
StorageLive(_25); // scope 15 at $DIR/reference_prop.rs:+31:13: +31:18
_25 = const 5_usize; // scope 15 at $DIR/reference_prop.rs:+31:21: +31:28
StorageLive(_26); // scope 16 at $DIR/reference_prop.rs:+32:13: +32:18
_26 = &raw mut _25; // scope 16 at $DIR/reference_prop.rs:+32:21: +32:31
StorageLive(_27); // scope 17 at $DIR/reference_prop.rs:+33:13: +33:14
_27 = &mut _26; // scope 17 at $DIR/reference_prop.rs:+33:17: +33:23
StorageLive(_28); // scope 18 at $DIR/reference_prop.rs:+34:13: +34:14
_28 = (*_26); // scope 18 at $DIR/reference_prop.rs:+34:17: +34:19
StorageLive(_29); // scope 19 at $DIR/reference_prop.rs:+35:9: +35:19
StorageLive(_30); // scope 19 at $DIR/reference_prop.rs:+35:16: +35:18
_30 = (); // scope 19 at $DIR/reference_prop.rs:+35:16: +35:18
_29 = opaque::<()>(move _30) -> bb4; // scope 19 at $DIR/reference_prop.rs:+35:9: +35:19
// mir::Constant
// + span: $DIR/reference_prop.rs:278:9: 278:15
// + literal: Const { ty: fn(()) {opaque::<()>}, val: Value(<ZST>) }
}
bb4: {
StorageDead(_30); // scope 19 at $DIR/reference_prop.rs:+35:18: +35:19
StorageDead(_29); // scope 19 at $DIR/reference_prop.rs:+35:19: +35:20
- _24 = const (); // scope 15 at $DIR/reference_prop.rs:+30:5: +36:6
StorageDead(_28); // scope 18 at $DIR/reference_prop.rs:+36:5: +36:6
StorageDead(_27); // scope 17 at $DIR/reference_prop.rs:+36:5: +36:6
StorageDead(_26); // scope 16 at $DIR/reference_prop.rs:+36:5: +36:6
StorageDead(_25); // scope 15 at $DIR/reference_prop.rs:+36:5: +36:6
- StorageDead(_24); // scope 0 at $DIR/reference_prop.rs:+36:5: +36:6
- StorageLive(_31); // scope 0 at $DIR/reference_prop.rs:+39:5: +44:6
StorageLive(_32); // scope 20 at $DIR/reference_prop.rs:+40:13: +40:18
_32 = const 7_usize; // scope 20 at $DIR/reference_prop.rs:+40:21: +40:28
StorageLive(_33); // scope 21 at $DIR/reference_prop.rs:+41:13: +41:14
_33 = &raw mut _32; // scope 21 at $DIR/reference_prop.rs:+41:17: +41:27
StorageLive(_34); // scope 22 at $DIR/reference_prop.rs:+42:13: +42:14
_34 = (*_33); // scope 22 at $DIR/reference_prop.rs:+42:17: +42:19
StorageLive(_35); // scope 23 at $DIR/reference_prop.rs:+43:9: +43:18
StorageLive(_36); // scope 23 at $DIR/reference_prop.rs:+43:16: +43:17
_36 = _33; // scope 23 at $DIR/reference_prop.rs:+43:16: +43:17
_35 = opaque::<*mut usize>(move _36) -> bb5; // scope 23 at $DIR/reference_prop.rs:+43:9: +43:18
// mir::Constant
// + span: $DIR/reference_prop.rs:286:9: 286:15
// + literal: Const { ty: fn(*mut usize) {opaque::<*mut usize>}, val: Value(<ZST>) }
}
bb5: {
StorageDead(_36); // scope 23 at $DIR/reference_prop.rs:+43:17: +43:18
StorageDead(_35); // scope 23 at $DIR/reference_prop.rs:+43:18: +43:19
- _31 = const (); // scope 20 at $DIR/reference_prop.rs:+39:5: +44:6
StorageDead(_34); // scope 22 at $DIR/reference_prop.rs:+44:5: +44:6
StorageDead(_33); // scope 21 at $DIR/reference_prop.rs:+44:5: +44:6
StorageDead(_32); // scope 20 at $DIR/reference_prop.rs:+44:5: +44:6
- StorageDead(_31); // scope 0 at $DIR/reference_prop.rs:+44:5: +44:6
- StorageLive(_37); // scope 0 at $DIR/reference_prop.rs:+47:5: +57:6
StorageLive(_38); // scope 24 at $DIR/reference_prop.rs:+48:13: +48:18
_38 = const 7_usize; // scope 24 at $DIR/reference_prop.rs:+48:21: +48:28
StorageLive(_39); // scope 25 at $DIR/reference_prop.rs:+49:13: +49:15
_39 = &raw mut _38; // scope 25 at $DIR/reference_prop.rs:+49:18: +49:28
StorageLive(_40); // scope 26 at $DIR/reference_prop.rs:+50:13: +50:14
_40 = (*_39); // scope 26 at $DIR/reference_prop.rs:+50:17: +50:20
StorageLive(_41); // scope 27 at $DIR/reference_prop.rs:+51:13: +51:15
_41 = _39; // scope 27 at $DIR/reference_prop.rs:+51:18: +51:20
StorageLive(_42); // scope 28 at $DIR/reference_prop.rs:+52:13: +52:15
_42 = (*_41); // scope 28 at $DIR/reference_prop.rs:+52:18: +52:21
StorageLive(_43); // scope 29 at $DIR/reference_prop.rs:+53:13: +53:15
_43 = _41; // scope 29 at $DIR/reference_prop.rs:+53:18: +53:20
StorageLive(_44); // scope 30 at $DIR/reference_prop.rs:+56:9: +56:19
StorageLive(_45); // scope 30 at $DIR/reference_prop.rs:+56:16: +56:18
_45 = _43; // scope 30 at $DIR/reference_prop.rs:+56:16: +56:18
_44 = opaque::<*mut usize>(move _45) -> bb6; // scope 30 at $DIR/reference_prop.rs:+56:9: +56:19
// mir::Constant
// + span: $DIR/reference_prop.rs:299:9: 299:15
// + literal: Const { ty: fn(*mut usize) {opaque::<*mut usize>}, val: Value(<ZST>) }
}
bb6: {
StorageDead(_45); // scope 30 at $DIR/reference_prop.rs:+56:18: +56:19
StorageDead(_44); // scope 30 at $DIR/reference_prop.rs:+56:19: +56:20
- _37 = const (); // scope 24 at $DIR/reference_prop.rs:+47:5: +57:6
StorageDead(_43); // scope 29 at $DIR/reference_prop.rs:+57:5: +57:6
StorageDead(_42); // scope 28 at $DIR/reference_prop.rs:+57:5: +57:6
StorageDead(_41); // scope 27 at $DIR/reference_prop.rs:+57:5: +57:6
StorageDead(_40); // scope 26 at $DIR/reference_prop.rs:+57:5: +57:6
StorageDead(_39); // scope 25 at $DIR/reference_prop.rs:+57:5: +57:6
StorageDead(_38); // scope 24 at $DIR/reference_prop.rs:+57:5: +57:6
- StorageDead(_37); // scope 0 at $DIR/reference_prop.rs:+57:5: +57:6
- StorageLive(_46); // scope 0 at $DIR/reference_prop.rs:+60:5: +64:6
StorageLive(_47); // scope 31 at $DIR/reference_prop.rs:+61:13: +61:14
_47 = &raw mut (*_1); // scope 31 at $DIR/reference_prop.rs:+61:17: +61:33
StorageLive(_48); // scope 32 at $DIR/reference_prop.rs:+62:13: +62:14
- _48 = (*_47); // scope 32 at $DIR/reference_prop.rs:+62:17: +62:19
+ _48 = (*_1); // scope 32 at $DIR/reference_prop.rs:+62:17: +62:19
StorageLive(_49); // scope 33 at $DIR/reference_prop.rs:+63:9: +63:19
StorageLive(_50); // scope 33 at $DIR/reference_prop.rs:+63:16: +63:18
_50 = (); // scope 33 at $DIR/reference_prop.rs:+63:16: +63:18
_49 = opaque::<()>(move _50) -> bb7; // scope 33 at $DIR/reference_prop.rs:+63:9: +63:19
// mir::Constant
// + span: $DIR/reference_prop.rs:306:9: 306:15
// + literal: Const { ty: fn(()) {opaque::<()>}, val: Value(<ZST>) }
}
bb7: {
StorageDead(_50); // scope 33 at $DIR/reference_prop.rs:+63:18: +63:19
StorageDead(_49); // scope 33 at $DIR/reference_prop.rs:+63:19: +63:20
- _46 = const (); // scope 31 at $DIR/reference_prop.rs:+60:5: +64:6
StorageDead(_48); // scope 32 at $DIR/reference_prop.rs:+64:5: +64:6
StorageDead(_47); // scope 31 at $DIR/reference_prop.rs:+64:5: +64:6
- StorageDead(_46); // scope 0 at $DIR/reference_prop.rs:+64:5: +64:6
StorageLive(_51); // scope 34 at $DIR/reference_prop.rs:+68:13: +68:14
_51 = &raw mut (*_2); // scope 34 at $DIR/reference_prop.rs:+68:17: +68:35
StorageLive(_52); // scope 35 at $DIR/reference_prop.rs:+69:20: +69:36
_52 = &raw mut (*_1); // scope 35 at $DIR/reference_prop.rs:+69:20: +69:36
_2 = move _52; // scope 35 at $DIR/reference_prop.rs:+69:9: +69:36
StorageDead(_52); // scope 35 at $DIR/reference_prop.rs:+69:35: +69:36
StorageLive(_53); // scope 35 at $DIR/reference_prop.rs:+70:13: +70:14
_53 = (*_51); // scope 35 at $DIR/reference_prop.rs:+70:17: +70:19
StorageLive(_54); // scope 36 at $DIR/reference_prop.rs:+71:9: +71:19
StorageLive(_55); // scope 36 at $DIR/reference_prop.rs:+71:16: +71:18
_55 = (); // scope 36 at $DIR/reference_prop.rs:+71:16: +71:18
_54 = opaque::<()>(move _55) -> bb8; // scope 36 at $DIR/reference_prop.rs:+71:9: +71:19
// mir::Constant
// + span: $DIR/reference_prop.rs:314:9: 314:15
// + literal: Const { ty: fn(()) {opaque::<()>}, val: Value(<ZST>) }
}
bb8: {
StorageDead(_55); // scope 36 at $DIR/reference_prop.rs:+71:18: +71:19
StorageDead(_54); // scope 36 at $DIR/reference_prop.rs:+71:19: +71:20
_0 = const (); // scope 34 at $DIR/reference_prop.rs:+67:5: +72:6
StorageDead(_53); // scope 35 at $DIR/reference_prop.rs:+72:5: +72:6
StorageDead(_51); // scope 34 at $DIR/reference_prop.rs:+72:5: +72:6
return; // scope 0 at $DIR/reference_prop.rs:+73:2: +73:2
}
}

View File

@ -12,6 +12,7 @@ fn reference_propagation<'a, T: Copy>(single: &'a T, mut multiple: &'a T) {
let a = 5_usize;
let b = &a; // This borrow is only used once.
let c = *b; // This should be optimized.
opaque(()); // We use opaque to separate cases into basic blocks in the MIR.
}
// Propagation through a two references.
@ -22,6 +23,7 @@ fn reference_propagation<'a, T: Copy>(single: &'a T, mut multiple: &'a T) {
b = &a2;
// `b` is assigned twice, so we cannot propagate it.
let c = *b;
opaque(());
}
// Propagation through a borrowed reference.
@ -29,7 +31,8 @@ fn reference_propagation<'a, T: Copy>(single: &'a T, mut multiple: &'a T) {
let a = 5_usize;
let b = &a;
let d = &b;
let c = *b; // `b` is immutably borrowed, we know its value, but cannot be removed.
let c = *b; // `b` is immutably borrowed, we know its value, but do not propagate it
opaque(());
}
// Propagation through a borrowed reference.
@ -38,6 +41,7 @@ fn reference_propagation<'a, T: Copy>(single: &'a T, mut multiple: &'a T) {
let mut b = &a;
let d = &mut b;
let c = *b; // `b` is mutably borrowed, we cannot know its value.
opaque(());
}
// Propagation through an escaping borrow.
@ -45,7 +49,7 @@ fn reference_propagation<'a, T: Copy>(single: &'a T, mut multiple: &'a T) {
let a = 7_usize;
let b = &a;
let c = *b;
opaque(b); // `b` escapes here, so we can only replace immutable borrow
opaque(b); // `b` escapes here, but we can still replace immutable borrow
}
// Propagation through a transitively escaping borrow.
@ -65,6 +69,7 @@ fn reference_propagation<'a, T: Copy>(single: &'a T, mut multiple: &'a T) {
{
let a = &*single;
let b = *a; // This should be optimized as `*single`.
opaque(());
}
// Propagation a reborrow of a mutated argument.
@ -72,6 +77,7 @@ fn reference_propagation<'a, T: Copy>(single: &'a T, mut multiple: &'a T) {
let a = &*multiple;
multiple = &*single;
let b = *a; // This should not be optimized.
opaque(());
}
}
@ -81,6 +87,7 @@ fn reference_propagation_mut<'a, T: Copy>(single: &'a mut T, mut multiple: &'a m
let mut a = 5_usize;
let b = &mut a; // This borrow is only used once.
let c = *b; // This should be optimized.
opaque(());
}
// Propagation through a two references.
@ -91,6 +98,7 @@ fn reference_propagation_mut<'a, T: Copy>(single: &'a mut T, mut multiple: &'a m
b = &mut a2;
// `b` is assigned twice, so we cannot propagate it.
let c = *b;
opaque(());
}
// Propagation through a borrowed reference.
@ -99,6 +107,7 @@ fn reference_propagation_mut<'a, T: Copy>(single: &'a mut T, mut multiple: &'a m
let b = &mut a;
let d = &b;
let c = *b; // `b` is immutably borrowed, we know its value, but cannot be removed.
opaque(());
}
// Propagation through a borrowed reference.
@ -107,6 +116,7 @@ fn reference_propagation_mut<'a, T: Copy>(single: &'a mut T, mut multiple: &'a m
let mut b = &mut a;
let d = &mut b;
let c = *b; // `b` is mutably borrowed, we cannot know its value.
opaque(());
}
// Propagation through an escaping borrow.
@ -134,6 +144,7 @@ fn reference_propagation_mut<'a, T: Copy>(single: &'a mut T, mut multiple: &'a m
{
let a = &mut *single;
let b = *a; // This should be optimized as `*single`.
opaque(());
}
// Propagation a reborrow of a mutated argument.
@ -141,6 +152,7 @@ fn reference_propagation_mut<'a, T: Copy>(single: &'a mut T, mut multiple: &'a m
let a = &mut *multiple;
multiple = &mut *single;
let b = *a; // This should not be optimized.
opaque(());
}
}
@ -150,6 +162,7 @@ fn reference_propagation_const_ptr<T: Copy>(single: *const T, mut multiple: *con
let a = 5_usize;
let b = &raw const a; // This borrow is only used once.
let c = *b; // This should be optimized.
opaque(());
}
// Propagation through a two references.
@ -160,6 +173,7 @@ fn reference_propagation_const_ptr<T: Copy>(single: *const T, mut multiple: *con
b = &raw const a2;
// `b` is assigned twice, so we cannot propagate it.
let c = *b;
opaque(());
}
// Propagation through a borrowed reference.
@ -168,6 +182,7 @@ fn reference_propagation_const_ptr<T: Copy>(single: *const T, mut multiple: *con
let b = &raw const a;
let d = &b;
let c = *b; // `b` is immutably borrowed, we know its value, but cannot be removed.
opaque(());
}
// Propagation through a borrowed reference.
@ -176,6 +191,7 @@ fn reference_propagation_const_ptr<T: Copy>(single: *const T, mut multiple: *con
let mut b = &raw const a;
let d = &mut b;
let c = *b; // `b` is mutably borrowed, we cannot know its value.
opaque(());
}
// Propagation through an escaping borrow.
@ -203,6 +219,7 @@ fn reference_propagation_const_ptr<T: Copy>(single: *const T, mut multiple: *con
unsafe {
let a = &raw const *single;
let b = *a; // This should be optimized as `*single`.
opaque(());
}
// Propagation a reborrow of a mutated argument.
@ -210,6 +227,7 @@ fn reference_propagation_const_ptr<T: Copy>(single: *const T, mut multiple: *con
let a = &raw const *multiple;
multiple = &raw const *single;
let b = *a; // This should not be optimized.
opaque(());
}
// Propagation through a reborrow.
@ -218,6 +236,7 @@ fn reference_propagation_const_ptr<T: Copy>(single: *const T, mut multiple: *con
let b = &raw const a;
let c = &raw const *b;
let e = *c;
opaque(());
}
}
@ -227,6 +246,7 @@ fn reference_propagation_mut_ptr<T: Copy>(single: *mut T, mut multiple: *mut T)
let mut a = 5_usize;
let b = &raw mut a; // This borrow is only used once.
let c = *b; // This should be optimized.
opaque(());
}
// Propagation through a two references.
@ -237,6 +257,7 @@ fn reference_propagation_mut_ptr<T: Copy>(single: *mut T, mut multiple: *mut T)
b = &raw mut a2;
// `b` is assigned twice, so we cannot propagate it.
let c = *b;
opaque(());
}
// Propagation through a borrowed reference.
@ -245,6 +266,7 @@ fn reference_propagation_mut_ptr<T: Copy>(single: *mut T, mut multiple: *mut T)
let b = &raw mut a;
let d = &b;
let c = *b; // `b` is immutably borrowed, we know its value, but cannot be removed.
opaque(());
}
// Propagation through a borrowed reference.
@ -253,6 +275,7 @@ fn reference_propagation_mut_ptr<T: Copy>(single: *mut T, mut multiple: *mut T)
let mut b = &raw mut a;
let d = &mut b;
let c = *b; // `b` is mutably borrowed, we cannot know its value.
opaque(());
}
// Propagation through an escaping borrow.
@ -280,6 +303,7 @@ fn reference_propagation_mut_ptr<T: Copy>(single: *mut T, mut multiple: *mut T)
unsafe {
let a = &raw mut *single;
let b = *a; // This should be optimized as `*single`.
opaque(());
}
// Propagation a reborrow of a mutated argument.
@ -287,6 +311,7 @@ fn reference_propagation_mut_ptr<T: Copy>(single: *mut T, mut multiple: *mut T)
let a = &raw mut *multiple;
multiple = &raw mut *single;
let b = *a; // This should not be optimized.
opaque(());
}
}
@ -381,12 +406,14 @@ fn maybe_dead(m: bool) {
let b = &mut y;
// As we don't replace `b` in `bb2`, we cannot replace it here either.
*b = 7;
// But this can still be replaced.
let u = *a;
match m { true => bb1, _ => bb2 }
}
bb1 = {
StorageDead(x);
StorageDead(y);
Goto(bb2)
Call(RET, bb2, opaque(u))
}
bb2 = {
// As `x` may be `StorageDead`, `a` may be dangling, so we do nothing.