diff --git a/src/bison.simple b/src/bison.simple index 2da7f273..26a6a019 100644 --- a/src/bison.simple +++ b/src/bison.simple @@ -483,11 +483,12 @@ int so that they stay on the same level as the state stack. The wasted elements are never initialized. */ - yyssp = yyss - 1; + yyssp = yyss; yyvsp = yyvs; #if YYLSP_NEEDED yylsp = yyls; #endif + goto yysetstate; /*------------------------------------------------------------. | yynewstate -- Push a new state, which is found in yystate. | @@ -496,7 +497,10 @@ yynewstate: /* In all cases, when you get here, the value and location stacks have just been pushed. so pushing a state here evens the stacks. */ - *++yyssp = yystate; + yyssp++; + +yysetstate: + *yyssp = yystate; if (yyssp >= yyss + yystacksize - 1) {