diff options
| author | bors <bors@rust-lang.org> | 2020-10-11 16:33:47 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2020-10-11 16:33:47 +0000 |
| commit | 8cc82ee340ed96099680ec1165cf5e192d658d0f (patch) | |
| tree | 0cac0c25eeb8b1861d8e3ecfe41608516354dac4 | |
| parent | bc74dd711fd154555dea3b110dfed39c4dc37bc6 (diff) | |
| parent | ecd7862dfb56e91537bf438284d2b83fb03cb0e1 (diff) | |
Auto merge of #77793 - tmiasko:no-op-discriminant, r=ecstatic-morse
Recognize discriminant reads as no-ops in RemoveNoopLandingPads The cleanup blocks often contain read of discriminants. Teach RemoveNoopLandingPads to recognize them as no-ops to remove additional no-op landing pads.
| -rw-r--r-- | compiler/rustc_mir/src/transform/remove_noop_landing_pads.rs | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/compiler/rustc_mir/src/transform/remove_noop_landing_pads.rs b/compiler/rustc_mir/src/transform/remove_noop_landing_pads.rs index b45c533d2c0..31e201c3a5b 100644 --- a/compiler/rustc_mir/src/transform/remove_noop_landing_pads.rs +++ b/compiler/rustc_mir/src/transform/remove_noop_landing_pads.rs @@ -43,7 +43,7 @@ impl RemoveNoopLandingPads { // These are all nops in a landing pad } - StatementKind::Assign(box (place, Rvalue::Use(_))) => { + StatementKind::Assign(box (place, Rvalue::Use(_) | Rvalue::Discriminant(_))) => { if place.as_local().is_some() { // Writing to a local (e.g., a drop flag) does not // turn a landing pad to a non-nop |
