]> git.saurik.com Git - bison.git/blobdiff - tests/torture.at
Regenerate.
[bison.git] / tests / torture.at
index 850d9c37cd00ad3b6d2134585b76dc07fdee3a84..b35052fc450d498d6920d852c21ddaa0deca6785 100644 (file)
@@ -13,8 +13,8 @@
 
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-# 02111-1307, USA.
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301, USA.
 
 AT_BANNER([[Torture Tests.]])
 
@@ -388,6 +388,8 @@ m4_define([AT_DATA_STACK_TORTURE],
 # exp:
 AT_DATA([input.y],
 [[%{
+#include <errno.h>
+#include <limits.h>
 #include <stdio.h>
 #include <stdlib.h>
 ]$1[
@@ -404,12 +406,8 @@ static void
 yyerror (const char *msg)
 {
   fprintf (stderr, "%s\n", msg);
-  exit (1);
 }
 
-/* There are YYLVAL_MAX of WAIT_FOR_EOFs. */
-unsigned int yylval_max;
-
 static int
 yylex (void)
 {
@@ -422,9 +420,14 @@ yylex (void)
 int
 main (int argc, const char **argv)
 {
+  char *endp;
   if (argc != 2)
     abort ();
-  yylval = atoi (argv[1]);
+  yylval = strtol (argv[1], &endp, 10);
+  if (! (argv[1] != endp
+        && 0 <= yylval && yylval <= INT_MAX
+        && errno != ERANGE))
+    abort ();
   yydebug = 1;
   return yyparse ();
 }
@@ -441,7 +444,8 @@ AT_COMPILE([input])
 AT_SETUP([Exploding the Stack Size with Alloca])
 
 AT_DATA_STACK_TORTURE([[
-#if defined __GNUC__ || defined alloca
+#if (defined __GNUC__ || defined __BUILTIN_VA_ARG_INCR \
+     || defined _AIX || defined _MSC_VER || defined _ALLOCA_H)
 # define YYSTACK_USE_ALLOCA 1
 #endif
 ]])
@@ -452,7 +456,7 @@ AT_PARSER_CHECK([./input 20], 0, [], [ignore])
 AT_PARSER_CHECK([./input 900], 0, [], [ignore])
 # Fails: beyond the limit of 10,000 (which we don't reach anyway since we
 # multiply by two starting at 200 => 5120 is the last possible).
-AT_PARSER_CHECK([./input 10000], 1, [], [ignore])
+AT_PARSER_CHECK([./input 10000], 2, [], [ignore])
 
 AT_CLEANUP
 
@@ -473,6 +477,6 @@ AT_PARSER_CHECK([./input 20], 0, [], [ignore])
 AT_PARSER_CHECK([./input 900], 0, [], [ignore])
 # Fails: beyond the limit of 10,000 (which we don't reach anyway since we
 # multiply by two starting at 200 => 5120 is the possible).
-AT_PARSER_CHECK([./input 10000], 1, [], [ignore])
+AT_PARSER_CHECK([./input 10000], 2, [], [ignore])
 
 AT_CLEANUP