Fix core dump reported by Pablo De Napoli in
authorPaul Eggert <eggert@cs.ucla.edu>
Mon, 25 Jul 2005 03:38:42 +0000 (03:38 +0000)
committerPaul Eggert <eggert@cs.ucla.edu>
Mon, 25 Jul 2005 03:38:42 +0000 (03:38 +0000)
<http://lists.gnu.org/archive/html/bug-bison/2005-07/msg00053.html>.
* tests/regression.at (Invalid inputs with {}): New test.
* src/parse-gram.y (token_name): Translate type before using
it as an index.

ChangeLog
src/parse-gram.y
tests/regression.at

index 6b30ded..ddee4aa 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,6 +2,12 @@
 
        * NEWS: Version 2.0b.
 
+       Fix core dump reported by Pablo De Napoli in
+       <http://lists.gnu.org/archive/html/bug-bison/2005-07/msg00053.html>.
+       * tests/regression.at (Invalid inputs with {}): New test.
+       * src/parse-gram.y (token_name): Translate type before using
+       it as an index.
+
        * data/glr.c (ATTRIBUTE_UNUSED): Remove, since it infringes on
        the user's name space.  All uses changed to __attribute__
        ((__unused__)).
index a638cb0..db15562 100644 (file)
@@ -538,5 +538,5 @@ gram_error (location const *loc, char const *msg)
 char const *
 token_name (int type)
 {
-  return yytname[type];
+  return yytname[YYTRANSLATE (type)];
 }
index 5ee3da9..de62cdc 100644 (file)
@@ -303,6 +303,27 @@ input.y:7.1-8.0: missing `%}' at end of file
 AT_CLEANUP
 
 
+AT_SETUP([Invalid inputs with {}])
+
+AT_DATA([input.y],
+[[
+%destructor
+%initial-action
+%lex-param
+%parse-param
+%printer
+%union
+]])
+
+AT_CHECK([bison input.y], [1], [],
+[[input.y:3.1: missing `{' in "%destructor {...}"
+input.y:4.1: missing `{' in "%initial-action {...}"
+input.y:4.1: syntax error, unexpected %initial-action {...}, expecting string or identifier
+]])
+
+AT_CLEANUP
+
+
 
 ## ------------------- ##
 ## Token definitions.  ##