aboutsummaryrefslogtreecommitdiff
path: root/libcpp/macro.c
diff options
context:
space:
mode:
Diffstat (limited to 'libcpp/macro.c')
-rw-r--r--libcpp/macro.c20
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;
}