correctly create Scalar for meta info

This commit is contained in:
b-naber 2022-06-04 11:24:29 +02:00
parent 90c4b947aa
commit 8093db6e2b

View file

@ -240,7 +240,7 @@ fn create_pointee_place<'tcx>(
let place = MPlaceTy::from_aligned_ptr_with_meta( let place = MPlaceTy::from_aligned_ptr_with_meta(
ptr.into(), ptr.into(),
layout, layout,
MemPlaceMeta::Meta(Scalar::from_u64(num_elems as u64)), MemPlaceMeta::Meta(Scalar::from_machine_usize(num_elems as u64, &tcx)),
); );
debug!(?place); debug!(?place);
@ -370,7 +370,8 @@ fn valtree_into_mplace<'tcx>(
let imm = match inner_ty.kind() { let imm = match inner_ty.kind() {
ty::Slice(_) | ty::Str => { ty::Slice(_) | ty::Str => {
let len = valtree.unwrap_branch().len(); let len = valtree.unwrap_branch().len();
let len_scalar = ScalarMaybeUninit::Scalar(Scalar::from_u64(len as u64)); let len_scalar =
ScalarMaybeUninit::Scalar(Scalar::from_machine_usize(len as u64, &tcx));
Immediate::ScalarPair( Immediate::ScalarPair(
ScalarMaybeUninit::from_maybe_pointer((*pointee_place).ptr, &tcx), ScalarMaybeUninit::from_maybe_pointer((*pointee_place).ptr, &tcx),
@ -441,7 +442,10 @@ fn valtree_into_mplace<'tcx>(
place place
.offset( .offset(
offset, offset,
MemPlaceMeta::Meta(Scalar::from_u64(num_elems as u64)), MemPlaceMeta::Meta(Scalar::from_machine_usize(
num_elems as u64,
&tcx,
)),
inner_layout, inner_layout,
&tcx, &tcx,
) )