/* Allocate input grammar variables for Bison.
- Copyright (C) 1984, 1986, 1989, 2001, 2002, 2003 Free Software
- Foundation, Inc.
+ Copyright (C) 1984, 1986, 1989, 2001, 2002, 2003, 2005, 2006 Free
+ Software Foundation, Inc.
This file is part of Bison, the GNU Compiler Compiler.
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA. */
-
+#include <config.h>
#include "system.h"
#include <quotearg.h>
bool
rule_useless_p (rule *r)
{
- return r->number >= nrules;
+ return !rule_useful_p (r);
}
bool
rule_never_reduced_p (rule *r)
{
- return !r->useful && r->number < nrules;
+ return !r->useful && rule_useful_p (r);
}
rule *rule_i = &rules[i];
item_number *rp = NULL;
unsigned int rhs_itemno = rule_i->rhs - ritem;
- unsigned int rhs_count = 0;
+ unsigned int rhs_count = 0;
/* Find the last RHS index in ritems. */
for (rp = rule_i->rhs; *rp >= 0; ++rp)
++rhs_count;
if (!rules[r].useful)
{
location_print (stderr, rules[r].location);
- fprintf (stderr, ": %s: %s: ",
- _("warning"), message);
+ fprintf (stderr, ": %s: %s: ", _("warning"), message);
rule_print (&rules[r], stderr);
}
}
void
grammar_free (void)
{
- free (ritem);
+ if (ritem)
+ free (ritem - 1);
free (rules);
free (token_translations);
/* Free the symbol table data structure. */