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()
for (;;) {
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 (num <= 1)
break;
{
if (args && args->pn_op && (args->pn_op->op_num == PT_OP_COMMA))
return args->pn_left;
return args;
}
return NULL;
}
if (!args)
return NULL;
args = args->pn_right;
}
if (args && args->pn_op && (args->pn_op->op_num == PT_OP_COMMA))
return args->pn_left;
return args;
}