mirror of
https://github.com/rust-lang/rust.git
synced 2026-05-22 18:15:07 +03:00
Rollup merge of #72425 - RalfJung:discr-sign-ext, r=nikomatsakis
fix discriminant_value sign extension Fixes a regression introduced in https://github.com/rust-lang/rust/pull/70705 r? @nikomatsakis Cc @lcnr @oli-obk
This commit is contained in:
@@ -219,7 +219,10 @@ pub fn emulate_intrinsic(
|
||||
let place = self.deref_operand(args[0])?;
|
||||
let discr_val = self.read_discriminant(place.into())?.0;
|
||||
let scalar = match dest.layout.ty.kind {
|
||||
ty::Int(_) => Scalar::from_int(discr_val as i128, dest.layout.size),
|
||||
ty::Int(_) => Scalar::from_int(
|
||||
self.sign_extend(discr_val, dest.layout) as i128,
|
||||
dest.layout.size,
|
||||
),
|
||||
ty::Uint(_) => Scalar::from_uint(discr_val, dest.layout.size),
|
||||
_ => bug!("invalid `discriminant_value` return layout: {:?}", dest.layout),
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user