tccpp.c: fix endless loop

Perhaps a better fix would be to ensure tok is set to TOK_EOF rather
than 0 at the end of a macro stream.

This partially fixes test2 of the examples given in:
http://lists.nongnu.org/archive/html/tinycc-devel/2015-05/msg00002.html

It's still failing, but at least it's not running out of memory now.
master
Philip 2015-05-02 12:33:45 +00:00
parent 1e878200f7
commit a3d78b95d7
1 changed files with 3 additions and 2 deletions

View File

@ -2930,8 +2930,9 @@ static int macro_subst_tok(TokenString *tok_str,
/* NOTE: non zero sa->t indicates VA_ARGS */
while ((parlevel > 0 ||
(tok != ')' &&
(tok != ',' || sa->type.t))) &&
tok != -1) {
(tok != ',' || sa->type.t)))) {
if (tok == TOK_EOF || tok == 0)
break;
if (tok == '(')
parlevel++;
else if (tok == ')')