use super::*;
impl<'p> Machine<'p, '_, '_> {
pub(super) fn parmcheck_set(&mut self) {
rt::parmcheck::set(self.unit, self.base, self.layout.parmcheck);
}
pub(super) fn parmcheck_test(&mut self, c: &Call, addresses: &[Option<usize>], called: impl FnOnce(&RunUnit) -> String) -> R<()> {
let arguments = c.using.iter().zip(addresses).filter_map(|(arg, address)| match (&arg.value, *address) {
(Some(Operand::Ref(r)), Some(a)) => Some((a, r.name.as_str())),
_ => None,
});
let abd = self.options.parmcheck.is_some_and(|p| p.abd);
rt::parmcheck::test(self.unit, self.base, self.layout.parmcheck, arguments, called, &self.program.id, abd, c.pos)
}
}