From 9138c575d80fea7f2ca5106b55932e3f25d7be92 Mon Sep 17 00:00:00 2001 From: "Joel E. Denny" Date: Wed, 17 May 2006 16:39:40 +0000 Subject: [PATCH] * data/glr.c (yyreportTree): Make room in yystates for the state preceding the RHS. This fixes the segmentation fault reported by Derek M. Jones in . (yyreportTree, yypdumpstack): Subtract 1 from yyrule before printing to the user. Reported for yyreportTree by Derek M. Jones later in the same thread. * THANKS: Add Derek M. Jones. Update my email address. Fix typo in Steve Murphy's name. --- ChangeLog | 13 +++++++++++++ THANKS | 5 +++-- data/glr.c | 8 ++++---- 3 files changed, 20 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index 0b94fe9a..54c34406 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,16 @@ +2006-05-17 Joel E. Denny + + * data/glr.c (yyreportTree): Make room in yystates for the state + preceding the RHS. This fixes the segmentation fault reported by Derek + M. Jones in + . + (yyreportTree, yypdumpstack): Subtract 1 from yyrule before printing + to the user. Reported for yyreportTree by Derek M. Jones later in the + same thread. + * THANKS: Add Derek M. Jones. + Update my email address. + Fix typo in Steve Murphy's name. + 2006-05-14 Paul Eggert * data/glr.c (yyreportSyntaxError): Fix off-by-one error in diff --git a/THANKS b/THANKS index 4ae2d2f8..c00580e0 100644 --- a/THANKS +++ b/THANKS @@ -21,6 +21,7 @@ Cris Bailiff c.bailiff+bison@awayweb.com Cris van Pelt cris@amf03054.office.wxs.nl Daniel Hagerty hag@gnu.org David J. MacKenzie djm@gnu.org +Derek M. Jones derek@knosof.co.uk Dick Streefland dick.streefland@altium.nl Enrico Scholz enrico.scholz@informatik.tu-chemnitz.de Evgeny Stambulchik fnevgeny@plasma-gate.weizmann.ac.il @@ -34,7 +35,7 @@ Jan Nieuwenhuizen janneke@gnu.org Jesse Thilo jthilo@gnu.org Jim Kent jkent@arch.sel.sony.com Jim Meyering jim@meyering.net -Joel E. Denny jdenny@hubcap.clemson.edu +Joel E. Denny jdenny@ces.clemson.edu Juan Manuel Guerrero ST001906@HRZ1.HRZ.TU-Darmstadt.De Kees Zeelenberg kzlg@users.sourceforge.net Keith Browne kbrowne@legato.com @@ -67,7 +68,7 @@ Raja R Harinath harinath@cs.umn.edu Richard Stallman rms@gnu.org Robert Anisko anisko_r@epita.fr Shura debil_urod@ngs.ru -Steve Murhpy murf@parsetree.com +Steve Murphy murf@parsetree.com Tim Josling tej@melbpc.org.au Tim Van Holder tim.van.holder@pandora.be Tom Lane tgl@sss.pgh.pa.us diff --git a/data/glr.c b/data/glr.c index 0a4b8999..d01122a1 100644 --- a/data/glr.c +++ b/data/glr.c @@ -1741,7 +1741,7 @@ yyreportTree (yySemanticOption* yyx, int yyindent) int yynrhs = yyrhsLength (yyx->yyrule); int yyi; yyGLRState* yys; - yyGLRState* yystates[YYMAXRHS]; + yyGLRState* yystates[1 + YYMAXRHS]; yyGLRState yyleftmost_state; for (yyi = yynrhs, yys = yyx->yystate; 0 < yyi; yyi -= 1, yys = yys->yypred) @@ -1757,11 +1757,11 @@ yyreportTree (yySemanticOption* yyx, int yyindent) if (yyx->yystate->yyposn < yys->yyposn + 1) YYFPRINTF (stderr, "%*s%s -> \n", yyindent, "", yytokenName (yylhsNonterm (yyx->yyrule)), - yyx->yyrule); + yyx->yyrule - 1); else YYFPRINTF (stderr, "%*s%s -> \n", yyindent, "", yytokenName (yylhsNonterm (yyx->yyrule)), - yyx->yyrule, (unsigned long int) (yys->yyposn + 1), + yyx->yyrule - 1, (unsigned long int) (yys->yyposn + 1), (unsigned long int) yyx->yystate->yyposn); for (yyi = 1; yyi <= yynrhs; yyi += 1) { @@ -2578,7 +2578,7 @@ yypdumpstack (yyGLRStack* yystackp) else { fprintf (stderr, "Option. rule: %d, state: %ld, next: %ld", - yyp->yyoption.yyrule, + yyp->yyoption.yyrule - 1, (long int) YYINDEX (yyp->yyoption.yystate), (long int) YYINDEX (yyp->yyoption.yynext)); } -- 2.45.2