]> git.saurik.com Git - bison.git/commitdiff
More alloca cleanups.
authorPaul Eggert <eggert@cs.ucla.edu>
Wed, 21 Sep 2005 19:54:48 +0000 (19:54 +0000)
committerPaul Eggert <eggert@cs.ucla.edu>
Wed, 21 Sep 2005 19:54:48 +0000 (19:54 +0000)
* bootstrap (gnulib_modules): Remove alloca.  Bison doesn't need
it itself.
* src/main.c (main) [C_ALLOCA]: Don't flush alloca'ed memory; we
don't use alloca any more.

* data/yacc.c [YYSTACK_USE_ALLOCA && !defined __GNUC__ && ! defined
__BUILTIN_VA_ARG_INCR && ! defined _AIX && ! defined _MSC_VER &&
(defined alloca || defined _ALLOCA_H)]: Don't include <stdlib.h>;
not needed in this case.
* tests/torture.at (Exploding the Stack Size with Alloca): Adjust
to match yacc.c, to test more hosts.

ChangeLog
bootstrap
data/yacc.c
src/main.c
tests/torture.at

index 232fede61d8fb97375ca7ccd53fdbc98c6d80a42..c2da9f8774016919c3ee9bf6718224cdaa65cbc7 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,17 @@
+2005-09-21  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * bootstrap (gnulib_modules): Remove alloca.  Bison doesn't need
+       it itself.
+       * src/main.c (main) [C_ALLOCA]: Don't flush alloca'ed memory; we
+       don't use alloca any more.
+
+       * data/yacc.c [YYSTACK_USE_ALLOCA && !defined __GNUC__ && ! defined
+       __BUILTIN_VA_ARG_INCR && ! defined _AIX && ! defined _MSC_VER &&
+       (defined alloca || defined _ALLOCA_H)]: Don't include <stdlib.h>;
+       not needed in this case.
+       * tests/torture.at (Exploding the Stack Size with Alloca): Adjust
+       to match yacc.c, to test more hosts.
+
 2005-09-20  Paul Eggert  <eggert@cs.ucla.edu>
 
        * data/yacc.c (YYSIZE_T): Reindent to make it clearer.  This
index 96c9bcb30aa09fb227b16fe84c9df22131448f01..017517fc23c5dedd84d7e1d4f38bbca30de42305 100755 (executable)
--- a/bootstrap
+++ b/bootstrap
@@ -92,7 +92,6 @@ esac
 <$GNULIB_SRCDIR/gnulib-tool || exit
 
 gnulib_modules='
-alloca
 argmatch
 dirname
 error
index 2ba3ceacb77d858ab811e95d5c7442e3a863f4c6..9cb7f2f3b49b60aff7a94bdf8920638de6609104 100644 (file)
@@ -263,7 +263,8 @@ b4_syncline([@oline@], [@ofile@])[
 #    define alloca _alloca
 #   else
 #    define YYSTACK_ALLOC alloca
-#    if ! defined (_STDLIB_H) && (defined (__STDC__) || defined (__cplusplus))
+#    if (! defined (alloca) && ! defined (_ALLOCA_H) && ! defined (_STDLIB_H) \
+        && (defined (__STDC__) || defined (__cplusplus)))
 #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
 #     ifndef _STDLIB_H
 #      define _STDLIB_H 1
index 08de721692417d75d36036665b3f98f5a1ee9462..65db7ca1bcf19d63c6cbbc8e0e50fc8a2f3b9838 100644 (file)
@@ -172,14 +172,6 @@ main (int argc, char *argv[])
   scanner_free ();
   muscle_free ();
   uniqstrs_free ();
-  /* If using alloca.c, flush the alloca'ed memory for the benefit of
-     people running Bison as a library in IDEs.  */
-#if C_ALLOCA
-  {
-    extern void *alloca (size_t);
-    alloca (0);
-  }
-#endif
   timevar_pop (TV_FREE);
 
   if (trace_flag & trace_bitsets)
index 16425f6a5c3fa0876fa626e53c5205c04072ad18..e0d8087a83ae48cc53c64059d82e7a904f54df0e 100644 (file)
@@ -444,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 || defined _ALLOCA_H)
 # define YYSTACK_USE_ALLOCA 1
 #endif
 ]])