fix validator to allow an ignored reference to a flonum stack slot

Closes PR 10972
This commit is contained in:
Matthew Flatt 2010-06-11 04:19:21 -04:00
parent 1e1202d6f2
commit fb14524241

View File

@ -12138,8 +12138,10 @@ void scheme_validate_expr(Mz_CPort *port, Scheme_Object *expr,
if (stack[p] != VALID_FLONUM)
scheme_ill_formed_code(port);
} else if ((stack[p] != VALID_VAL) && (stack[p] != VALID_VAL_NOCLEAR)) {
if (result_ignored && ((stack[p] == VALID_BOX) || (stack[p] == VALID_BOX_NOCLEAR))) {
/* ok to look up and ignore box */
if (result_ignored && ((stack[p] == VALID_BOX)
|| (stack[p] == VALID_BOX_NOCLEAR)
|| (stack[p] == VALID_FLONUM))) {
/* ok to look up and ignore box or flonum */
} else if ((proc_with_refs_ok >= 2)
&& ((stack[p] == VALID_BOX) || (stack[p] == VALID_BOX_NOCLEAR))
&& scheme_validate_rator_wants_box(app_rator, proc_with_refs_ok - 2, 1,