This commit is contained in:
Ralf Jung 2020-01-15 19:27:21 +01:00
parent a91f3794be
commit 23c74449a2
4 changed files with 6 additions and 6 deletions

View file

@ -1 +1 @@
adc65725004c8aac16392fe4052c3e347181157d
31dd4f4acbcbdb02b0745d2136399ed664a28050

View file

@ -76,7 +76,7 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: crate::MiriEvalContextExt<'mir, 'tcx
/// Get the `Place` for a local
fn local_place(&mut self, local: mir::Local) -> InterpResult<'tcx, PlaceTy<'tcx, Tag>> {
let this = self.eval_context_mut();
let place = mir::Place { base: mir::PlaceBase::Local(local), projection: List::empty() };
let place = mir::Place { local: local, projection: List::empty() };
this.eval_place(&place)
}
@ -349,7 +349,7 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: crate::MiriEvalContextExt<'mir, 'tcx
for &imm in imms {
this.write_immediate_to_mplace(
*imm,
place.offset(offset, None, imm.layout, &*this.tcx)?,
place.offset(offset, MemPlaceMeta::None, imm.layout, &*this.tcx)?,
)?;
offset += imm.layout.size;
}

View file

@ -409,7 +409,7 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: crate::MiriEvalContextExt<'mir, 'tcx
_ => {
// Do it in memory
let mplace = this.force_allocation(dest)?;
mplace.meta.unwrap_none(); // must be sized
assert!(!mplace.layout.is_unsized());
this.memory.write_bytes(
mplace.ptr,
iter::repeat(0u8).take(dest.layout.size.bytes() as usize),
@ -574,7 +574,7 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: crate::MiriEvalContextExt<'mir, 'tcx
_ => {
// Do it in memory
let mplace = this.force_allocation(dest)?;
mplace.meta.unwrap_none();
assert!(!mplace.layout.is_unsized());
let ptr = mplace.ptr.assert_ptr();
// We know the return place is in-bounds
this.memory.get_raw_mut(ptr.alloc_id)?.mark_definedness(

View file

@ -132,7 +132,7 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: crate::MiriEvalContextExt<'mir, 'tcx
let payload = this.machine.panic_payload.take().unwrap();
let payload = this.ref_to_mplace(payload)?;
let payload_data_place = payload.ptr;
let payload_vtable_place = payload.meta.expect("Expected fat pointer");
let payload_vtable_place = payload.meta.unwrap_meta();
this.write_scalar(payload_data_place, unwind_data.data_place.into())?;
this.write_scalar(payload_vtable_place, unwind_data.vtable_place.into())?;