diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2005-07-18 18:09:40 +0000 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2005-07-18 18:09:40 +0000 |
commit | 6100a9aa2e68e992396e3e1da954921dc1fee801 (patch) | |
tree | c393eb987d113a0504a4253f4d3ac1826afa5960 /tests/cxx-type.at | |
parent | 67fd79c42743952d58ca53e3a97a8b66ee31bcc6 (diff) | |
download | bison-6100a9aa2e68e992396e3e1da954921dc1fee801.tar.gz |
Improve tests for stack overflow in GLR parser.
Problem reported by twlevo@xs4all.nl.
* data/glr.c (struct yyGLRStack): Remove yyerrflag member.
All uses removed.
(yyStackOverflow): Just longjmp, but with value 2 so that caller
can handle the problem.
(YYCHK1): Use goto (a la yacc.c) rather than setting a flag.
(yyparse): New local variable yyresult to record the result.
Use result of setjmp to set it, rather than storing itinto
struct.
(yyDone): Remove label.
(yyacceptlab, yyabortlab, yyoverflowlab, yyreturn): New labels,
to mimic yacc.c. Do not discard lookahead if it's EOF (possible
if YYABORT is used).
* tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Exit with
yyparse status; put status > 1 into diagnostic.
Check that status==2 works.
* tests/calc.at, tests/cxx-type.at, tests/glr-regression.at:
Use exit status 3 for failure to open (which shouldn't happen).
Diffstat (limited to 'tests/cxx-type.at')
-rw-r--r-- | tests/cxx-type.at | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/tests/cxx-type.at b/tests/cxx-type.at index f9c093c5..0fcdfdb6 100644 --- a/tests/cxx-type.at +++ b/tests/cxx-type.at @@ -115,8 +115,8 @@ main (int argc, char **argv) if (argc != 2) abort (); if (!freopen (argv[1], "r", stdin)) - abort (); - exit (yyparse ()); + return 3; + return yyparse (); } int |