summaryrefslogtreecommitdiff
path: root/gcc/c-parser.c
diff options
context:
space:
mode:
authorbothner <bothner@138bc75d-0d04-0410-961f-82ee72b054a4>2005-03-12 06:37:46 +0000
committerbothner <bothner@138bc75d-0d04-0410-961f-82ee72b054a4>2005-03-12 06:37:46 +0000
commit6342afacd2014efb6aede7e7b7f978dc95371a30 (patch)
tree65b4a8dab5e3ade6d18469d0c871b15a2a066e5a /gcc/c-parser.c
parent44b0f1d0af17ec80ac6369cd7e7f5c7343e51b69 (diff)
downloadgcc-6342afacd2014efb6aede7e7b7f978dc95371a30.tar.gz
* c-tree.h (struct c_declarator): New id_loc field.
* c-pragma.h (c_lex_with_flags): Take position reference. * c-lex.c (c_lex_with_flags): Set passed-in location from cpp token, iff USE_MAPPED_LOCATION. (Type doesn't match otherwise.) (c_lex): Pass dummy location to c_lex_with_flags. * c-parser.c (c_lex_one_token): Set c_token's location using c_lex_with_flags, instead of input_location, which might be "ahead". (c_parser_direct_declarator): Set declarator's id_loc from c_token's id_loc. * c-decl.c (grokdeclarator): Set DECL_SOURCE_LOCATION from declarator's id_loc, rather than probably-imprecise input_location. (build_id_declarator): Initialize c_declarator's id_loc field. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@96329 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/c-parser.c')
-rw-r--r--gcc/c-parser.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/c-parser.c b/gcc/c-parser.c
index 94874226514..6fd09b94be0 100644
--- a/gcc/c-parser.c
+++ b/gcc/c-parser.c
@@ -295,8 +295,7 @@ static void
c_lex_one_token (c_token *token)
{
timevar_push (TV_LEX);
- token->type = c_lex (&token->value);
- token->location = input_location;
+ token->type = c_lex_with_flags (&token->value, &token->location, NULL);
token->in_system_header = in_system_header;
switch (token->type)
{
@@ -2179,6 +2178,7 @@ c_parser_direct_declarator (c_parser *parser, bool type_seen_p, c_dtr_syn kind,
struct c_declarator *inner
= build_id_declarator (c_parser_peek_token (parser)->value);
*seen_id = true;
+ inner->id_loc = c_parser_peek_token (parser)->location;
c_parser_consume_token (parser);
return c_parser_direct_declarator_inner (parser, *seen_id, inner);
}