about summary refs log tree commit diff
path: root/src/librustc_mir/interpret
diff options
context:
space:
mode:
authorBastian Kauschke <bastian_kauschke@hotmail.de>2020-03-08 14:24:32 +0100
committerBastian Kauschke <bastian_kauschke@hotmail.de>2020-03-08 14:24:32 +0100
commit6d03bbd480ef9bef09321fbfdc00229a03091b11 (patch)
treedcf7fd10df1455d72968a192223a3a73ce56d6ce /src/librustc_mir/interpret
parentf943349eafaa75a60c05b0c84dcdb771d0eae8c9 (diff)
downloadrust-6d03bbd480ef9bef09321fbfdc00229a03091b11.tar.gz
rust-6d03bbd480ef9bef09321fbfdc00229a03091b11.zip
constify `mem::discriminant`
Diffstat (limited to 'src/librustc_mir/interpret')
-rw-r--r--src/librustc_mir/interpret/intrinsics.rs5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/librustc_mir/interpret/intrinsics.rs b/src/librustc_mir/interpret/intrinsics.rs
index 891afbf437f..1e5ed76c467 100644
--- a/src/librustc_mir/interpret/intrinsics.rs
+++ b/src/librustc_mir/interpret/intrinsics.rs
@@ -216,6 +216,11 @@ impl<'mir, 'tcx, M: Machine<'mir, 'tcx>> InterpCx<'mir, 'tcx, M> {
                 };
                 self.write_scalar(val, dest)?;
             }
+            sym::discriminant_value => {
+                let place = self.deref_operand(args[0])?;
+                let discr_val = self.read_discriminant(place.into())?.0;
+                self.write_scalar(Scalar::from_uint(discr_val, dest.layout.size), dest)?;
+            }
             sym::unchecked_shl
             | sym::unchecked_shr
             | sym::unchecked_add