+2003-01-13 Akim Demaille <akim@epita.fr>,
+ Quoc Peyrot <chojin@lrde.epita.fr>,
+ Robert Anisko <anisko_r@lrde.epita.fr>
+
+ * data/lalr1.cc (parse::yyerrlab1): When popping the stack, stop
+ when the stacks contain one element, as the loop would otherwise
+ free the last state, and then use the top state (the one we just
+ popped). This means that the initial elements will not be freed
+ explicitly, as is the case in yacc.c; it is not a problem, as
+ these elements have fake values.
+
2003-01-11 Paul Eggert <eggert@twinsun.com>
* NEWS: %expect-violations are now just warnings, reverting
int nerrs = 0;
int errstatus = 0;
- /* Initialize stack. */
+ /* Initialize the stacks. The initial state will be pushed in
+ yynewstate, since the latter expects the semantical and the
+ location values to have been already stored, initialize these
+ stacks with a primary value. */
state_stack_ = StateStack (0);
semantic_stack_ = SemanticStack (1);
location_stack_ = LocationStack (1);
}
/* Pop the current state because it cannot handle the error token. */
- if (!state_stack_.height ())
+ if (state_stack_.height () == 1)
goto yyabortlab;
#if YYDEBUG