X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/ea13bea8ab1c8da513e065f8ba21216616203a4a..abd189e8dc6ca848f038da12e4110d6192374b82:/tests/regression.at?ds=inline diff --git a/tests/regression.at b/tests/regression.at index 1157bea9..c07b7442 100644 --- a/tests/regression.at +++ b/tests/regression.at @@ -1,7 +1,6 @@ # Bison Regressions. -*- Autotest -*- -# Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, -# 2010 Free Software Foundation, Inc. +# Copyright (C) 2001-2011 Free Software Foundation, Inc. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -393,7 +392,8 @@ input.y:3.14: invalid character: `}' input.y:4.1: invalid character: `%' input.y:4.2: invalid character: `&' input.y:5.1-17: invalid directive: `%a-does-not-exist' -input.y:6.1-2: invalid directive: `%-' +input.y:6.1: invalid character: `%' +input.y:6.2: invalid character: `-' input.y:7.1-8.0: missing `%}' at end of file input.y:7.1-8.0: syntax error, unexpected %{...%} ]]) @@ -1205,12 +1205,15 @@ AT_DATA_GRAMMAR([input.y], %} %error-verbose +%right END 0 %left TK1 1 TK2 2 "tok alias" 3 %% -start: TK1 sr_conflict "tok alias" ; - +start: + TK1 sr_conflict "tok alias" + | start %prec END + ; sr_conflict: TK2 | TK2 "tok alias" @@ -1240,7 +1243,8 @@ main (void) ]]) AT_BISON_CHECK([[-o input.c input.y]], [[0]],, -[[input.y:24.5-19: warning: rule useless in parser due to conflicts: sr_conflict: TK2 "tok alias" +[[input.y:23.5-19: warning: rule useless in parser due to conflicts: start: start +input.y:27.5-19: warning: rule useless in parser due to conflicts: sr_conflict: TK2 "tok alias" ]]) AT_COMPILE([[input]]) AT_PARSER_CHECK([[./input]]) @@ -1506,6 +1510,8 @@ AT_DATA_GRAMMAR([input.y], // default reductions in inconsistent states // v v v v v v v v v v v v v v S: A B A A B A A A A B A A A A A A A B C C A A A A A A A A A A A A B ; +// ^ ^ ^ +// LAC reallocs A: 'a' | /*empty*/ { printf ("inconsistent default reduction\n"); } ; B: 'b' ; @@ -1535,9 +1541,8 @@ main (void) } ]]) -# Give exactly the right amount of memory to be sure there's no -# off-by-one error, for example. -AT_BISON_CHECK([[-Dparse.lac=full -Dparse.lac.es-capacity=12 \ +AT_BISON_CHECK([[-Dparse.lac=full -Dparse.lac.es-capacity-initial=1 \ + -Dparse.lac.memory-trace=full \ -t -o input.c input.y]], [[0]], [], [[input.y: conflicts: 21 shift/reduce ]]) @@ -1560,6 +1565,11 @@ AT_CHECK([[perl -0777 -ne 'print s/inconsistent default reduction//g;' \ AT_CHECK([[perl -0777 -ne 'print s/\bconsistent default reduction//g;' \ < stdout.txt || exit 77]], [[0]], [[2]]) +# Check number of reallocs to be sure reallocated memory isn't somehow +# lost between LAC invocations. +AT_CHECK([[perl -0777 -ne 'print s/\(realloc//g;' < stderr.txt \ + || exit 77]], [[0]], [[3]]) + AT_BISON_OPTION_POPDEFS ]) @@ -1587,6 +1597,7 @@ AT_DATA_GRAMMAR([input.y], #include void yyerror (char const *); int yylex (void); + #define YYMAXDEPTH 8 } %error-verbose @@ -1619,7 +1630,7 @@ main (void) } ]]) -AT_BISON_CHECK([[-Dparse.lac=full -Dparse.lac.es-capacity=8 \ +AT_BISON_CHECK([[-Dparse.lac=full -Dparse.lac.es-capacity-initial=1 \ -t -o input.c input.y]], [[0]], [], [[input.y: conflicts: 8 shift/reduce ]]) @@ -1634,7 +1645,7 @@ AT_PARSER_CHECK([[./input]], [[2]], [[]], Entering state 0 Reading a token: Now at end of input. LAC: initial context established for $end -LAC: checking lookahead $end: R2 G3 R2 G5 R2 G6 R2 G7 R2 G8 R2 G9 R2 G10 R2 G11 R2 (max stack size exceeded) +LAC: checking lookahead $end: R2 G3 R2 G5 R2 G6 R2 G7 R2 G8 R2 G9 R2 G10 R2 G11 R2 (max size exceeded) memory exhausted Cleanup: discarding lookahead token $end () Stack now 0 @@ -1650,7 +1661,7 @@ Reading a token: Next token is token $undefined () LAC: initial context established for $undefined LAC: checking lookahead $undefined: Always Err Constructing syntax error message -LAC: checking lookahead $end: R2 G3 R2 G5 R2 G6 R2 G7 R2 G8 R2 G9 R2 G10 R2 G11 R2 (max stack size exceeded) +LAC: checking lookahead $end: R2 G3 R2 G5 R2 G6 R2 G7 R2 G8 R2 G9 R2 G10 R2 G11 R2 (max size exceeded) syntax error memory exhausted Cleanup: discarding lookahead token $undefined ()