about summary refs log tree commit diff
path: root/compiler/rustc_mir_transform
diff options
context:
space:
mode:
authorRalf Jung <post@ralfj.de>2024-01-26 10:30:46 +0100
committerRalf Jung <post@ralfj.de>2024-01-26 10:40:29 +0100
commit64cd13ff3b9b5ca0ed88cd1cfd0d15aca846da7e (patch)
treee102ac0925b397275eed560e82f0042dc2d97995 /compiler/rustc_mir_transform
parent1025a12b64a7e5d852e02d59d86aca558733bed1 (diff)
downloadrust-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.rs7
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 =