diff options
| author | Ralf Jung <post@ralfj.de> | 2024-01-26 10:30:46 +0100 |
|---|---|---|
| committer | Ralf Jung <post@ralfj.de> | 2024-01-26 10:40:29 +0100 |
| commit | 64cd13ff3b9b5ca0ed88cd1cfd0d15aca846da7e (patch) | |
| tree | e102ac0925b397275eed560e82f0042dc2d97995 /compiler/rustc_mir_transform | |
| parent | 1025a12b64a7e5d852e02d59d86aca558733bed1 (diff) | |
| download | rust-64cd13ff3b9b5ca0ed88cd1cfd0d15aca846da7e.tar.gz rust-64cd13ff3b9b5ca0ed88cd1cfd0d15aca846da7e.zip | |
add test for GVN issue; cleanup in dataflow_const_prop
Diffstat (limited to 'compiler/rustc_mir_transform')
| -rw-r--r-- | compiler/rustc_mir_transform/src/dataflow_const_prop.rs | 7 |
1 files changed, 1 insertions, 6 deletions
diff --git a/compiler/rustc_mir_transform/src/dataflow_const_prop.rs b/compiler/rustc_mir_transform/src/dataflow_const_prop.rs index d5f22b2cdbc..ad12bce9b02 100644 --- a/compiler/rustc_mir_transform/src/dataflow_const_prop.rs +++ b/compiler/rustc_mir_transform/src/dataflow_const_prop.rs @@ -403,12 +403,7 @@ impl<'a, 'tcx> ConstAnalysis<'a, 'tcx> { operand, &mut |elem, op| match elem { TrackElem::Field(idx) => self.ecx.project_field(op, idx.as_usize()).ok(), - TrackElem::Variant(idx) => { - if op.layout.for_variant(&self.ecx, idx).abi.is_uninhabited() { - return None; - } - self.ecx.project_downcast(op, idx).ok() - } + TrackElem::Variant(idx) => self.ecx.project_downcast(op, idx).ok(), TrackElem::Discriminant => { let variant = self.ecx.read_discriminant(op).ok()?; let discr_value = |
