diff options
| author | kenta7777 <k.hasegw7@gmail.com> | 2019-02-23 10:07:09 +0900 |
|---|---|---|
| committer | kenta7777 <k.hasegw7@gmail.com> | 2019-02-23 10:07:09 +0900 |
| commit | 42d5cf868c74bcd2eabe2b88430a3427d552cc0c (patch) | |
| tree | efface2cd18b9b1231989a73f2092b8e94ae7fd3 /src | |
| parent | c6fd02772bdfa8934bedd1823b563ae3a76074e6 (diff) | |
| download | rust-42d5cf868c74bcd2eabe2b88430a3427d552cc0c.tar.gz rust-42d5cf868c74bcd2eabe2b88430a3427d552cc0c.zip | |
reduce an mir code repetition like (n << amt) >> amt
Diffstat (limited to 'src')
| -rw-r--r-- | src/librustc_mir/interpret/place.rs | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/librustc_mir/interpret/place.rs b/src/librustc_mir/interpret/place.rs index b29e09900f6..0bec0d5eb20 100644 --- a/src/librustc_mir/interpret/place.rs +++ b/src/librustc_mir/interpret/place.rs @@ -7,6 +7,7 @@ use std::hash::Hash; use rustc::hir; use rustc::mir; +use rustc::mir::interpret::truncate; use rustc::ty::{self, Ty}; use rustc::ty::layout::{self, Size, Align, LayoutOf, TyLayout, HasDataLayout, VariantIdx}; use rustc::ty::TypeFoldable; @@ -959,8 +960,7 @@ where // their computation, but the in-memory tag is the smallest possible // representation let size = tag.value.size(self); - let shift = 128 - size.bits(); - let discr_val = (discr_val << shift) >> shift; + let discr_val = truncate(discr_val, size); let discr_dest = self.place_field(dest, 0)?; self.write_scalar(Scalar::from_uint(discr_val, size), discr_dest)?; |
