frontend/define.c, ntharg(), #7/15 substitute tail of ntharg() for `break'

This commit is contained in:
rlar 2015-10-04 19:33:20 +02:00
parent e98bfc720f
commit e93327fdb7
1 changed files with 8 additions and 7 deletions

View File

@ -410,22 +410,23 @@ ntharg(int num, struct pnode *args)
// fact: num >= 1 for all known invocations of ntharg() // fact: num >= 1 for all known invocations of ntharg()
for (;;) { for (;;) {
if (--num <= 0) { if (--num <= 0) {
break; if (args && args->pn_op && (args->pn_op->op_num == PT_OP_COMMA))
return args->pn_left;
return args;
} }
if (args && args->pn_op && (args->pn_op->op_num != PT_OP_COMMA)) { if (args && args->pn_op && (args->pn_op->op_num != PT_OP_COMMA)) {
if (num <= 1) if (num <= 1)
break; {
if (args && args->pn_op && (args->pn_op->op_num == PT_OP_COMMA))
return args->pn_left;
return args;
}
return NULL; return NULL;
} }
if (!args) if (!args)
return NULL; return NULL;
args = args->pn_right; args = args->pn_right;
} }
if (args && args->pn_op && (args->pn_op->op_num == PT_OP_COMMA))
return args->pn_left;
return args;
} }