From: Akim Demaille Date: Tue, 12 Nov 2002 08:30:47 +0000 (+0000) Subject: * src/tables.c (tables_generate): Use free for pointers that X-Git-Tag: BISON-1_875~293 X-Git-Url: https://git.saurik.com/bison.git/commitdiff_plain/b1ae9233bc1ab111bbac4b427cc4397fa9ee0564 * src/tables.c (tables_generate): Use free for pointers that cannot be NULL, not XFREE. (pack_vector): Use assert, not fatal, for bound violations. * src/state.c (state_new): Likewise. * src/reader.c (reader): Likewise. * src/lalr.c (set_goto_map): Likewise. * src/location.h (LOCATION_PRINT): If first_line is 0, just issue the file name. --- diff --git a/ChangeLog b/ChangeLog index 112d663e..f52edb89 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2002-11-12 Akim Demaille + + * src/tables.c (tables_generate): Use free for pointers that + cannot be NULL, not XFREE. + (pack_vector): Use assert, not fatal, for bound violations. + * src/state.c (state_new): Likewise. + * src/reader.c (reader): Likewise. + * src/lalr.c (set_goto_map): Likewise. + * src/location.h (LOCATION_PRINT): If first_line is 0, just issue + the file name. + 2002-11-12 Akim Demaille * src/scan-gram.l, src/reader.h (scanner_last_string_free): diff --git a/src/lalr.c b/src/lalr.c index 2c0c942a..8fb3c29e 100644 --- a/src/lalr.c +++ b/src/lalr.c @@ -87,9 +87,7 @@ set_goto_map (void) int i; for (i = sp->num - 1; i >= 0 && TRANSITION_IS_GOTO (sp, i); --i) { - if (ngotos == GOTO_NUMBER_MAX) - fatal (_("too many gotos (max %d)"), GOTO_NUMBER_MAX); - + assert (ngotos < GOTO_NUMBER_MAX); ngotos++; goto_map[TRANSITION_SYMBOL (sp, i)]++; } diff --git a/src/location.h b/src/location.h index d259334d..5a2d64a3 100644 --- a/src/location.h +++ b/src/location.h @@ -53,20 +53,23 @@ do { \ Warning: it uses quotearg's slot 3. */ # define LOCATION_PRINT(Out, Loc) \ do { \ - fprintf (stderr, "%s:", quotearg_n_style (3, escape_quoting_style, \ + fprintf (stderr, "%s:", quotearg_n_style (3, escape_quoting_style, \ (Loc).file)); \ - if ((Loc).first_line != (Loc).last_line) \ - fprintf (Out, "%d.%d-%d.%d", \ - (Loc).first_line, (Loc).first_column, \ - (Loc).last_line, (Loc).last_column - 1); \ - else if ((Loc).first_column < (Loc).last_column - 1) \ - fprintf (Out, "%d.%d-%d", (Loc).first_line, \ - (Loc).first_column, (Loc).last_column - 1); \ - else \ - fprintf (Out, "%d.%d", (Loc).first_line, (Loc).first_column); \ + if ((Loc).first_line) \ + { \ + if ((Loc).first_line != (Loc).last_line) \ + fprintf (Out, "%d.%d-%d.%d", \ + (Loc).first_line, (Loc).first_column, \ + (Loc).last_line, (Loc).last_column - 1); \ + else if ((Loc).first_column < (Loc).last_column - 1) \ + fprintf (Out, "%d.%d-%d", (Loc).first_line, \ + (Loc).first_column, (Loc).last_column - 1); \ + else \ + fprintf (Out, "%d.%d", (Loc).first_line, (Loc).first_column); \ + } \ } while (0) - extern location_t empty_location; + #endif /* !LOCATION_H_ */ diff --git a/src/reader.c b/src/reader.c index 9f83a935..5c65d020 100644 --- a/src/reader.c +++ b/src/reader.c @@ -539,10 +539,7 @@ reader (void) grammar = p; } - if (SYMBOL_NUMBER_MAX < nsyms) - fatal (_("too many symbols (tokens plus nonterminals); maximum %d"), - SYMBOL_NUMBER_MAX); - + assert (nsyms <= SYMBOL_NUMBER_MAX); assert (nsyms == ntokens + nvars); xfclose (finput); diff --git a/src/state.c b/src/state.c index b258ceeb..846bdae5 100644 --- a/src/state.c +++ b/src/state.c @@ -141,8 +141,7 @@ state_new (symbol_number_t accessing_symbol, { state_t *res; - if (nstates >= STATE_NUMBER_MAX) - fatal (_("too many states (max %d)"), STATE_NUMBER_MAX); + assert (nstates < STATE_NUMBER_MAX); res = STATE_ALLOC (core_size); res->accessing_symbol = accessing_symbol; diff --git a/src/tables.c b/src/tables.c index 84afd1cd..17883e1f 100644 --- a/src/tables.c +++ b/src/tables.c @@ -692,8 +692,7 @@ pack_vector (vector_number_t vector) if (loc > high) high = loc; - if (j < BASE_MIN || BASE_MAX < j) - fatal ("base_t too small to hold %d\n", j); + assert (BASE_MIN <= j && j <= BASE_MAX); return j; } } @@ -802,9 +801,9 @@ tables_generate (void) token_actions (); goto_actions (); - XFREE (goto_map + ntokens); - XFREE (from_state); - XFREE (to_state); + free (goto_map + ntokens); + free (from_state); + free (to_state); order = XCALLOC (vector_number_t, nvectors); sort_actions (); @@ -816,8 +815,8 @@ tables_generate (void) for (i = 0; i < nvectors; i++) { - XFREE (froms[i]); - XFREE (tos[i]); + free (froms[i]); + free (tos[i]); XFREE (conflict_tos[i]); }