1
Fork 0

interpret, codegen: tweak some comments and checks regarding Box with custom allocator

This commit is contained in:
Ralf Jung 2024-08-31 11:29:02 +02:00
parent fa72f0763d
commit d0aedfbb90
4 changed files with 15 additions and 6 deletions

View file

@ -438,14 +438,16 @@ where
&self,
src: &impl Readable<'tcx, M::Provenance>,
) -> InterpResult<'tcx, MPlaceTy<'tcx, M::Provenance>> {
if src.layout().ty.is_box() {
// Derefer should have removed all Box derefs.
// Some `Box` are not immediates (if they have a custom allocator)
// so the code below would fail.
bug!("dereferencing {}", src.layout().ty);
}
let val = self.read_immediate(src)?;
trace!("deref to {} on {:?}", val.layout.ty, *val);
if val.layout.ty.is_box() {
// Derefer should have removed all Box derefs
bug!("dereferencing {}", val.layout.ty);
}
let mplace = self.ref_to_mplace(&val)?;
Ok(mplace)
}