cp:
authornathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 1 May 2001 10:53:09 +0000 (10:53 +0000)
committernathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 1 May 2001 10:53:09 +0000 (10:53 +0000)
* spew.c (last_token_id): New static variable.
(read_token): Set it here.
(yyerror): Use it here.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@41719 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/cp/ChangeLog
gcc/cp/spew.c

index e952168..5255f15 100644 (file)
@@ -1,3 +1,9 @@
+2001-05-01  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * spew.c (last_token_id): New static variable.
+       (read_token): Set it here.
+       (yyerror): Use it here.
+
 2001-04-30  Richard Henderson  <rth@redhat.com>
 
         * cvt.c: Downcase C_PROMOTING_INTEGER_TYPE_P invocations.
index ea2392a..4a230f0 100644 (file)
@@ -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));