(YYPOINTER): Remove.
(yyparse): yyptr is now union yyalloc *, not char *.
(YYSTACK_RELOCATE): Likewise. This avoids a GCC warning,
and may generate better code on some machines.
/* A type that is properly aligned for any stack member. */
union yyalloc
{
/* A type that is properly aligned for any stack member. */
union yyalloc
{
- short yys;
- YYSTYPE yyv;
+ short yyss;
+ YYSTYPE yyvs;
+ YYSTACK_GAP_MAX)
# endif
+ YYSTACK_GAP_MAX)
# endif
-# if defined (__STDC__) || defined (__cplusplus)
-# define YYPOINTER void *
-# else
-# define YYPOINTER char *
-# endif
-
/* Relocate the TYPE STACK from its old location to the new one. The
local variables YYSIZE and YYSTACKSIZE give the old and new number of
elements in the stack, and YYPTR gives the new location of the
/* Relocate the TYPE STACK from its old location to the new one. The
local variables YYSIZE and YYSTACKSIZE give the old and new number of
elements in the stack, and YYPTR gives the new location of the
do \
{ \
YYSIZE_T yynewbytes; \
do \
{ \
YYSIZE_T yynewbytes; \
- yymemcpy (yyptr, (char *) (Stack), \
+ yymemcpy ((char *) yyptr, (char *) (Stack), \
yysize * (YYSIZE_T) sizeof (Type)); \
yysize * (YYSIZE_T) sizeof (Type)); \
- (Stack) = (Type *) (YYPOINTER) yyptr; \
+ Stack = &yyptr->Stack; \
yynewbytes = yystacksize * sizeof (Type) + YYSTACK_GAP_MAX; \
yynewbytes = yystacksize * sizeof (Type) + YYSTACK_GAP_MAX; \
- yynewbytes -= yynewbytes % sizeof (union yyalloc); \
- yyptr += yynewbytes; \
+ yyptr += yynewbytes / sizeof (*yyptr); \
- char *yyptr = (char *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
+ union yyalloc *yyptr =
+ (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
if (! yyptr)
goto yyoverflowlab;
YYSTACK_RELOCATE (short, yyss);
if (! yyptr)
goto yyoverflowlab;
YYSTACK_RELOCATE (short, yyss);