Miri call ABI check: ensure type size+align stay the same

This commit is contained in:
Ralf Jung 2022-05-25 14:29:46 +02:00
parent 4a99c5f504
commit d7a2d9ae0e

View File

@ -185,7 +185,14 @@ fn check_argument_compat(
// No question
return true;
}
// Compare layout
if caller_abi.layout.size != callee_abi.layout.size
|| caller_abi.layout.align.abi != callee_abi.layout.align.abi
{
// This cannot go well...
// FIXME: What about unsized types?
return false;
}
// The rest *should* be okay, but we are extra conservative.
match (caller_abi.layout.abi, callee_abi.layout.abi) {
// Different valid ranges are okay (once we enforce validity,
// that will take care to make it UB to leave the range, just