diff -r 567e1f9fc89e tcc.c --- a/tcc.c Thu Nov 29 22:08:02 2007 +0000 +++ b/tcc.c Thu Nov 29 22:17:14 2007 +0000 @@ -3177,6 +3177,7 @@ static int macro_subst_tok(TokenString * { Sym *args, *sa, *sa1; int mstr_allocated, parlevel, *mstr, t, t1; + int old_parse_flags; TokenString str; char *cstrval; CValue cval; @@ -3255,6 +3256,8 @@ static int macro_subst_tok(TokenString * args = NULL; sa = s->next; /* NOTE: empty args are allowed, except if no args */ + old_parse_flags = parse_flags; + parse_flags &= ~PARSE_FLAG_LINEFEED; for(;;) { /* handle '()' case */ if (!args && !sa && tok == ')') @@ -3291,6 +3294,7 @@ static int macro_subst_tok(TokenString * expect(","); next_nomacro(); } + parse_flags = old_parse_flags; if (sa) { error("macro '%s' used with too few args", get_tok_str(s->v, 0));