diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2002-03-18 21:48:47 +0000 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2002-03-18 21:48:47 +0000 |
commit | 8afe2396ab8f3d3dfa2c066a1907ce002066f5ab (patch) | |
tree | 860a82e446b9e4b82d24c7eebd6381f9792378f2 | |
parent | d7be63a140a2c1fa68e76fa2f8bc8075bc3e21ce (diff) | |
download | bison-8afe2396ab8f3d3dfa2c066a1907ce002066f5ab.tar.gz |
(union yyalloc, YYSTACK_GAP_MAX, YYSTACK_BYTES, YYSTACK_RELOCATE):
Do not define if yyoverflow is defined, or if this is a C++ parser and
either YYSTYPE or YYLTYPE has nontrivial constructors or destructors.
(yymemcpy) [! defined YYSTACK_RELOCATE]: Do not define; not needed.
(yyparse) [! defined YYSTACK_RELOCATE]: Do not relocate the stack.
-rw-r--r-- | src/bison.simple | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/bison.simple b/src/bison.simple index 2eb4e378..3b11285b 100644 --- a/src/bison.simple +++ b/src/bison.simple @@ -66,6 +66,12 @@ # define YYSTACK_ALLOC malloc # define YYSTACK_FREE free # endif +#endif /* ! defined (yyoverflow) || defined (YYERROR_VERBOSE) */ + + +#if (! defined (yyoverflow) \ + && (! defined (__cplusplus) \ + || (YYLTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) /* A type that is properly aligned for any stack member. */ union yyalloc @@ -109,7 +115,7 @@ union yyalloc } \ while (0) -#endif /* ! defined (yyoverflow) || defined (YYERROR_VERBOSE) */ +#endif #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__) @@ -236,7 +242,7 @@ int yydebug; # define YYMAXDEPTH 10000 #endif -#if ! defined (yyoverflow) && ! defined (yymemcpy) +#if defined (YYSTACK_RELOCATE) && ! defined (yymemcpy) # if __GNUC__ > 1 /* GNU C and GNU C++ define this. */ # define yymemcpy __builtin_memcpy # else /* not GNU C or C++ */ @@ -504,6 +510,9 @@ yyparse (YYPARSE_PARAM_ARG) yyvs = yyvs1; } #else /* no yyoverflow */ +# ifndef YYSTACK_RELOCATE + goto yyoverflowlab; +# else /* Extend the stack our own way. */ if (yystacksize >= YYMAXDEPTH) goto yyoverflowlab; @@ -526,6 +535,7 @@ yyparse (YYPARSE_PARAM_ARG) if (yyss1 != yyssa) YYSTACK_FREE (yyss1); } +# endif #endif /* no yyoverflow */ yyssp = yyss + yysize - 1; |