finally enable Scalar layout sanity checks
This commit is contained in:
parent
f342bea9d1
commit
8f867c5445
3 changed files with 5 additions and 7 deletions
|
@ -306,9 +306,8 @@ impl<'mir, 'tcx: 'mir, M: Machine<'mir, 'tcx>> InterpCx<'mir, 'tcx, M> {
|
||||||
s.is_ptr() || (number_may_have_provenance && size == self.pointer_size())
|
s.is_ptr() || (number_may_have_provenance && size == self.pointer_size())
|
||||||
};
|
};
|
||||||
if let Some(s) = scalar_layout {
|
if let Some(s) = scalar_layout {
|
||||||
//FIXME(#96185): let size = s.size(self);
|
let size = s.size(self);
|
||||||
//FIXME(#96185): assert_eq!(size, mplace.layout.size, "abi::Scalar size does not match layout size");
|
assert_eq!(size, mplace.layout.size, "abi::Scalar size does not match layout size");
|
||||||
let size = mplace.layout.size; //FIXME(#96185): remove this line
|
|
||||||
let scalar =
|
let scalar =
|
||||||
alloc.read_scalar(alloc_range(Size::ZERO, size), read_provenance(s, size))?;
|
alloc.read_scalar(alloc_range(Size::ZERO, size), read_provenance(s, size))?;
|
||||||
return Ok(Some(ImmTy { imm: scalar.into(), layout: mplace.layout }));
|
return Ok(Some(ImmTy { imm: scalar.into(), layout: mplace.layout }));
|
||||||
|
|
|
@ -793,7 +793,7 @@ where
|
||||||
)
|
)
|
||||||
};
|
};
|
||||||
let size = s.size(&tcx);
|
let size = s.size(&tcx);
|
||||||
//FIXME(#96185): assert_eq!(dest.layout.size, size, "abi::Scalar size does not match layout size");
|
assert_eq!(size, dest.layout.size, "abi::Scalar size does not match layout size");
|
||||||
alloc.write_scalar(alloc_range(Size::ZERO, size), scalar)
|
alloc.write_scalar(alloc_range(Size::ZERO, size), scalar)
|
||||||
}
|
}
|
||||||
Immediate::ScalarPair(a_val, b_val) => {
|
Immediate::ScalarPair(a_val, b_val) => {
|
||||||
|
|
|
@ -235,9 +235,8 @@ fn sanity_check_layout<'tcx>(
|
||||||
if cfg!(debug_assertions) {
|
if cfg!(debug_assertions) {
|
||||||
fn check_layout_abi<'tcx>(tcx: TyCtxt<'tcx>, layout: Layout<'tcx>) {
|
fn check_layout_abi<'tcx>(tcx: TyCtxt<'tcx>, layout: Layout<'tcx>) {
|
||||||
match layout.abi() {
|
match layout.abi() {
|
||||||
Abi::Scalar(_scalar) => {
|
Abi::Scalar(scalar) => {
|
||||||
// No padding in scalars.
|
// No padding in scalars.
|
||||||
/* FIXME(#96185):
|
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
layout.align().abi,
|
layout.align().abi,
|
||||||
scalar.align(&tcx).abi,
|
scalar.align(&tcx).abi,
|
||||||
|
@ -247,7 +246,7 @@ fn sanity_check_layout<'tcx>(
|
||||||
layout.size(),
|
layout.size(),
|
||||||
scalar.size(&tcx),
|
scalar.size(&tcx),
|
||||||
"size mismatch between ABI and layout in {layout:#?}"
|
"size mismatch between ABI and layout in {layout:#?}"
|
||||||
);*/
|
);
|
||||||
}
|
}
|
||||||
Abi::Vector { count, element } => {
|
Abi::Vector { count, element } => {
|
||||||
// No padding in vectors. Alignment can be strengthened, though.
|
// No padding in vectors. Alignment can be strengthened, though.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue