rust/src/test/mir-opt/if_condition_int.opt_u32.SimplifyComparisonIntegral.diff
Matthew Jasper ff8c0ef0e4 Fix drop handling for if let expressions
MIR lowering for `if let` expressions is now more complicated now that
`if let` exists in HIR. This PR adds a scope for the variables bound in
an `if let` expression and then uses an approach similar to how we
handle loops to ensure that we reliably drop the correct variables.
2021-09-01 23:47:41 +01:00

40 lines
2.2 KiB
Diff

- // MIR for `opt_u32` before SimplifyComparisonIntegral
+ // MIR for `opt_u32` after SimplifyComparisonIntegral
fn opt_u32(_1: u32) -> u32 {
debug x => _1; // in scope 0 at $DIR/if-condition-int.rs:11:12: 11:13
let mut _0: u32; // return place in scope 0 at $DIR/if-condition-int.rs:11:23: 11:26
let mut _2: bool; // in scope 0 at $DIR/if-condition-int.rs:12:8: 12:15
let mut _3: u32; // in scope 0 at $DIR/if-condition-int.rs:12:8: 12:9
bb0: {
StorageLive(_2); // scope 0 at $DIR/if-condition-int.rs:12:8: 12:15
StorageLive(_3); // scope 0 at $DIR/if-condition-int.rs:12:8: 12:9
_3 = _1; // scope 0 at $DIR/if-condition-int.rs:12:8: 12:9
- _2 = Eq(move _3, const 42_u32); // scope 0 at $DIR/if-condition-int.rs:12:8: 12:15
- StorageDead(_3); // scope 0 at $DIR/if-condition-int.rs:12:14: 12:15
- switchInt(move _2) -> [false: bb2, otherwise: bb1]; // scope 0 at $DIR/if-condition-int.rs:12:8: 12:15
+ nop; // scope 0 at $DIR/if-condition-int.rs:12:8: 12:15
+ nop; // scope 0 at $DIR/if-condition-int.rs:12:14: 12:15
+ switchInt(move _3) -> [42_u32: bb1, otherwise: bb2]; // scope 0 at $DIR/if-condition-int.rs:12:8: 12:15
}
bb1: {
+ StorageDead(_3); // scope 0 at $DIR/if-condition-int.rs:12:8: 12:15
_0 = const 0_u32; // scope 0 at $DIR/if-condition-int.rs:12:18: 12:19
goto -> bb3; // scope 0 at $DIR/if-condition-int.rs:12:5: 12:32
}
bb2: {
+ StorageDead(_3); // scope 0 at $DIR/if-condition-int.rs:12:8: 12:15
_0 = const 1_u32; // scope 0 at $DIR/if-condition-int.rs:12:29: 12:30
goto -> bb3; // scope 0 at $DIR/if-condition-int.rs:12:5: 12:32
}
bb3: {
StorageDead(_2); // scope 0 at $DIR/if-condition-int.rs:12:31: 12:32
return; // scope 0 at $DIR/if-condition-int.rs:13:2: 13:2
}
}