diff options
Diffstat (limited to 'libcpp/macro.c')
-rw-r--r-- | libcpp/macro.c | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/libcpp/macro.c b/libcpp/macro.c index 2c7d732..9cb3b10 100644 --- a/libcpp/macro.c +++ b/libcpp/macro.c @@ -1241,7 +1241,8 @@ collect_args (cpp_reader *pfile, const cpp_hashnode *node, ntokens--; arg->count = ntokens; - set_arg_token (arg, &pfile->eof, pfile->eof.src_loc, + /* Append an EOF to mark end-of-argument. */ + set_arg_token (arg, &pfile->endarg, token->src_loc, ntokens, MACRO_ARG_TOKEN_NORMAL, CPP_OPTION (pfile, track_macro_expansion)); @@ -1328,17 +1329,12 @@ funlike_invocation_p (cpp_reader *pfile, cpp_hashnode *node, return collect_args (pfile, node, pragma_buff, num_args); } - /* CPP_EOF can be the end of macro arguments, or the end of the - file. We mustn't back up over the latter. Ugh. */ - if (token->type != CPP_EOF || token == &pfile->eof) - { - /* Back up. We may have skipped padding, in which case backing - up more than one token when expanding macros is in general - too difficult. We re-insert it in its own context. */ - _cpp_backup_tokens (pfile, 1); - if (padding) - _cpp_push_token_context (pfile, NULL, padding, 1); - } + /* Back up. We may have skipped padding, in which case backing + up more than one token when expanding macros is in general + too difficult. We re-insert it in its own context. */ + _cpp_backup_tokens (pfile, 1); + if (padding) + _cpp_push_token_context (pfile, NULL, padding, 1); return NULL; } |