From 1bcea8d764215f8b04d69c5e8a991b715db54304 Mon Sep 17 00:00:00 2001 From: Nathan Sidwell Date: Tue, 1 May 2001 10:53:09 +0000 Subject: [PATCH] spew.c (last_token_id): New static variable. cp: * spew.c (last_token_id): New static variable. (read_token): Set it here. (yyerror): Use it here. From-SVN: r41719 --- gcc/cp/ChangeLog | 6 ++++++ gcc/cp/spew.c | 12 ++++++++---- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index e9521684636..5255f156ba8 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2001-05-01 Nathan Sidwell + + * spew.c (last_token_id): New static variable. + (read_token): Set it here. + (yyerror): Use it here. + 2001-04-30 Richard Henderson * cvt.c: Downcase C_PROMOTING_INTEGER_TYPE_P invocations. diff --git a/gcc/cp/spew.c b/gcc/cp/spew.c index ea2392a2cbf..4a230f08298 100644 --- a/gcc/cp/spew.c +++ b/gcc/cp/spew.c @@ -140,6 +140,7 @@ static void debug_yychar PARAMS ((int)); extern char *debug_yytranslate PARAMS ((int)); #endif static enum cpp_ttype last_token; +static tree last_token_id; /* From lex.c: */ /* the declaration found for the last IDENTIFIER token read in. @@ -259,7 +260,8 @@ read_token (t) { retry: - last_token = c_lex (&t->yylval.ttype); + last_token = c_lex (&last_token_id); + t->yylval.ttype = last_token_id; switch (last_token) { @@ -1499,10 +1501,12 @@ yyerror (msgid) error ("%s before numeric constant", string); else if (last_token == CPP_NAME) { - if (yylval.ttype && TREE_CODE (yylval.ttype) == IDENTIFIER_NODE) - error ("%s before `%s'", string, IDENTIFIER_POINTER (yylval.ttype)); - else + if (TREE_CODE (last_token_id) == IDENTIFIER_NODE) + error ("%s before `%s'", string, IDENTIFIER_POINTER (last_token_id)); + else if (ISGRAPH (yychar)) error ("%s before `%c'", string, yychar); + else + error ("%s before `\%o'", string, yychar); } else error ("%s before `%s' token", string, NAME (last_token)); -- 2.30.2