]> granicus.if.org Git - flex/commitdiff
Added #ifdef chud for alloca()
authorVern Paxson <vern@ee.lbl.gov>
Tue, 30 Nov 1993 12:59:42 +0000 (12:59 +0000)
committerVern Paxson <vern@ee.lbl.gov>
Tue, 30 Nov 1993 12:59:42 +0000 (12:59 +0000)
parse.y

diff --git a/parse.y b/parse.y
index 709996c9a3c77b9b3a81132180d37b6b3f193e0b..beb6e112bee1124a3f89615275f9c0ee638d06ce 100644 (file)
--- a/parse.y
+++ b/parse.y
 
 /* $Header$ */
 
+
+/* Some versions of bison are broken in that they use alloca() but don't
+ * declare it properly.  The following is the patented (just kidding!)
+ * #ifdef chud to fix the problem, courtesy of Francois Pinard.
+ */
+#ifdef YYBISON
+/* AIX requires this to be the first thing in the file.  */
+#ifdef __GNUC__
+#define alloca __builtin_alloca
+#else /* not __GNUC__ */
+#if HAVE_ALLOCA_H
+#include <alloca.h>
+#else /* not HAVE_ALLOCA_H */
+#ifdef _AIX
+ #pragma alloca
+#else /* not _AIX */
+char *alloca ();
+#endif /* not _AIX */
+#endif /* not HAVE_ALLOCA_H */
+#endif /* not __GNUC__ */
+#endif /* YYBISON */
+
+/* Bletch, ^^^^ that was ugly! */
+
+
 #include "flexdef.h"
 
 int pat, scnum, eps, headcnt, trailcnt, anyccl, lastchar, i, actvp, rulelen;