From: Theophile Ranquet Date: Mon, 1 Oct 2012 13:44:20 +0000 (+0000) Subject: warnings: fusion of complain and complain_at X-Git-Tag: v2.7.90~316 X-Git-Url: https://git.saurik.com/bison.git/commitdiff_plain/bb8e56ff67d289d15f1a4dc7f5e1502cd3bbfc24 warnings: fusion of complain and complain_at These functions are very similar, and keeping them seperate makes future improvements difficult, so merge them. This impacts 89 calls. * src/bootstrap.conf: Adjust. * src/complain.c (complain, complain_at): Merge into... (complain): this. (complain_args): Adjust. * src/complain.h, src/conflicts.c, src/files.c, src/getargs.c, * src/gram.c, src/location.c, src/muscle-tab.c, src/parse-gram.y, * src/reader.c, src/reduce.c, src/scan-code.l, src/scan-gram.l, * src/scan-skel.l, src/symlist.c, src/symtab.c: Adjust. Signed-off-by: Akim Demaille --- diff --git a/bootstrap.conf b/bootstrap.conf index e90cf12d..190327d3 100644 --- a/bootstrap.conf +++ b/bootstrap.conf @@ -48,8 +48,7 @@ gnulib_modules=' XGETTEXT_OPTIONS=$XGETTEXT_OPTIONS'\\\ --from-code=UTF-8\\\ --flag=asprintf:2:c-format\\\ - --flag=complain:2:c-format\\\ - --flag=complain_at:3:c-format\\\ + --flag=complain:3:c-format\\\ --flag=complain_at_indent:4:c-format\\\ --flag=unexpected_end:2:c-format\\\ ' diff --git a/src/complain.c b/src/complain.c index 4b07e18c..1d43f1d2 100644 --- a/src/complain.c +++ b/src/complain.c @@ -143,29 +143,20 @@ complains (const location *loc, warnings flags, const char *message, } void -complain (warnings flags, const char *message, ...) +complain (location const* loc, warnings flags, const char *message, ...) { va_list args; va_start (args, message); - complains (NULL, flags, message, args); + complains (loc, flags, message, args); va_end (args); } void -complain_at (location loc, warnings flags, const char *message, ...) +complain_at_indent (location loc, warnings flags, unsigned *indent, + const char *message, ...) { va_list args; - va_start (args, message); - complains (&loc, flags, message, args); - va_end (args); -} - -void complain_at_indent (location loc, warnings flags, unsigned *indent, - const char *message, ...) -{ indent_ptr = indent; - - va_list args; va_start (args, message); complains (&loc, flags, message, args); va_end (args); diff --git a/src/complain.h b/src/complain.h index 1d473914..31084e04 100644 --- a/src/complain.h +++ b/src/complain.h @@ -57,12 +57,8 @@ extern warnings errors_flag; /** Display a "[-Wyacc]" like message on stderr. */ void warnings_print_categories (warnings warn_flags); -/** Make a complaint, but don't specify any location. */ -void complain (warnings flags, char const *message, ...) - __attribute__ ((__format__ (__printf__, 2, 3))); - -/** Make a complaint with location. */ -void complain_at (location loc, warnings flags, char const *message, ...) +/** Make a complaint, with maybe a location. */ +void complain (location const* loc, warnings flags, char const *message, ...) __attribute__ ((__format__ (__printf__, 3, 4))); /** Make a complaint with location and some indentation. */ diff --git a/src/conflicts.c b/src/conflicts.c index 99f096a2..f8ed1772 100644 --- a/src/conflicts.c +++ b/src/conflicts.c @@ -561,7 +561,7 @@ conflicts_print (void) { if (! glr_parser && expected_rr_conflicts != -1) { - complain (Wother, _("%%expect-rr applies only to GLR parsers")); + complain (NULL, Wother, _("%%expect-rr applies only to GLR parsers")); expected_rr_conflicts = -1; } @@ -577,12 +577,12 @@ conflicts_print (void) if (expected != -1) { if (expected != total) - complain (complaint, + complain (NULL, complaint, _("shift/reduce conflicts: %d found, %d expected"), total, expected); } else if (total) - complain (Wconflicts_sr, + complain (NULL, Wconflicts_sr, ngettext ("%d shift/reduce conflict", "%d shift/reduce conflicts", total), @@ -599,12 +599,12 @@ conflicts_print (void) if (expected != -1) { if (expected != total) - complain (complaint, + complain (NULL, complaint, _("reduce/reduce conflicts: %d found, %d expected"), total, expected); } else if (total) - complain (Wconflicts_rr, + complain (NULL, Wconflicts_rr, ngettext ("%d reduce/reduce conflict", "%d reduce/reduce conflicts", total), diff --git a/src/files.c b/src/files.c index ae9fc7f1..7fea3064 100644 --- a/src/files.c +++ b/src/files.c @@ -360,7 +360,7 @@ output_file_name_check (char **file_name) bool conflict = false; if (STREQ (*file_name, grammar_file)) { - complain (complaint, _("refusing to overwrite the input file %s"), + complain (NULL, complaint, _("refusing to overwrite the input file %s"), quote (*file_name)); conflict = true; } @@ -370,7 +370,7 @@ output_file_name_check (char **file_name) for (i = 0; i < file_names_count; i++) if (STREQ (file_names[i], *file_name)) { - complain (Wother, _("conflicting outputs to file %s"), + complain (NULL, Wother, _("conflicting outputs to file %s"), quote (*file_name)); conflict = true; } diff --git a/src/getargs.c b/src/getargs.c index 695ad12a..db1c3869 100644 --- a/src/getargs.c +++ b/src/getargs.c @@ -427,8 +427,8 @@ skeleton_arg (char const *arg, int prio, location loc) skeleton = arg; } else if (prio == skeleton_prio) - complain_at (loc, complaint, - _("multiple skeleton declarations are invalid")); + complain (&loc, complaint, + _("multiple skeleton declarations are invalid")); } void @@ -453,7 +453,7 @@ language_argmatch (char const *arg, int prio, location loc) else return; - complain_at (loc, complaint, msg, quotearg_colon (arg)); + complain (&loc, complaint, msg, quotearg_colon (arg)); } /*----------------------. diff --git a/src/gram.c b/src/gram.c index ef5353a6..f58ac3b5 100644 --- a/src/gram.c +++ b/src/gram.c @@ -312,7 +312,7 @@ grammar_rules_useless_report (const char *message) for (r = 0; r < nrules ; ++r) if (!rules[r].useful) { - complain_at (rules[r].location, w | silent, "%s: ", message); + complain (&rules[r].location, w | silent, "%s: ", message); rule_print (&rules[r], stderr); warnings_print_categories (w); fprintf (stderr, "\n"); diff --git a/src/location.c b/src/location.c index 9960d623..a7494158 100644 --- a/src/location.c +++ b/src/location.c @@ -90,9 +90,9 @@ location_compute (location *loc, boundary *cur, char const *token, size_t size) loc->end = *cur; if (line == INT_MAX && loc->start.line != INT_MAX) - complain_at (*loc, Wother, _("line number overflow")); + complain (loc, Wother, _("line number overflow")); if (column == INT_MAX && loc->start.column != INT_MAX) - complain_at (*loc, Wother, _("column number overflow")); + complain (loc, Wother, _("column number overflow")); } diff --git a/src/muscle-tab.c b/src/muscle-tab.c index 4738fdfd..be97b800 100644 --- a/src/muscle-tab.c +++ b/src/muscle-tab.c @@ -407,9 +407,9 @@ muscle_percent_variable_update (char const *variable, location variable_loc) if (STREQ (conversion[i].obsolete, variable)) { res = conversion[i].updated; - complain_at (variable_loc, Wdeprecated, - _("deprecated %%define variable name: %s, use %s"), - quote (variable), quote_n (1, res)); + complain (&variable_loc, Wdeprecated, + _("deprecated %%define variable name: %s, use %s"), + quote (variable), quote_n (1, res)); break; } return res; @@ -503,7 +503,7 @@ muscle_percent_define_get_loc (char const *variable) { char const *loc_name = UNIQSTR_CONCAT ("percent_define_loc(", variable, ")"); if (!muscle_find_const (loc_name)) - complain (fatal, _("%s: undefined %%define variable %s"), + complain (NULL, fatal, _("%s: undefined %%define variable %s"), "muscle_percent_define_get_loc", quote (variable)); return location_decode (loc_name); } @@ -515,7 +515,7 @@ muscle_percent_define_get_syncline (char const *variable) UNIQSTR_CONCAT ("percent_define_syncline(", variable, ")"); char const *syncline = muscle_find_const (syncline_name); if (!syncline) - complain (fatal, _("%s: undefined %%define variable %s"), + complain (NULL, fatal, _("%s: undefined %%define variable %s"), "muscle_percent_define_get_syncline", quote (variable)); return syncline; } @@ -554,14 +554,14 @@ muscle_percent_define_flag_if (char const *variable) { muscle_insert (invalid_boolean_name, ""); location loc = muscle_percent_define_get_loc (variable); - complain_at (loc, complaint, - _("invalid value for %%define Boolean variable %s"), - quote (variable)); + complain (&loc, complaint, + _("invalid value for %%define Boolean variable %s"), + quote (variable)); } free (value); } else - complain (fatal, _("%s: undefined %%define variable %s"), + complain (NULL, fatal, _("%s: undefined %%define variable %s"), "muscle_percent_define_flag", quote (variable)); return result; @@ -623,7 +623,7 @@ muscle_percent_define_check_values (char const * const *values) free (value); } else - complain (fatal, _("%s: undefined %%define variable %s"), + complain (NULL, fatal, _("%s: undefined %%define variable %s"), "muscle_percent_define_check_values", quote (*variablep)); } } diff --git a/src/parse-gram.c b/src/parse-gram.c index 92bb62cf..3101c7ee 100644 --- a/src/parse-gram.c +++ b/src/parse-gram.c @@ -1,4 +1,4 @@ -/* A Bison parser, made by GNU Bison 2.6.2.873-d87e-dirty. */ +/* A Bison parser, made by GNU Bison 2.6.2.891-3f15-dirty. */ /* Bison implementation for Yacc-like parsers in C @@ -44,7 +44,7 @@ #define YYBISON 1 /* Bison version. */ -#define YYBISON_VERSION "2.6.2.873-d87e-dirty" +#define YYBISON_VERSION "2.6.2.891-3f15-dirty" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -148,8 +148,8 @@ static char const *char_name (char); /* In a future release of Bison, this section will be replaced by #include "src/parse-gram.h". */ -#ifndef GRAM_SRC_PARSE_GRAM_H -# define GRAM_SRC_PARSE_GRAM_H +#ifndef YY_GRAM_SRC_PARSE_GRAM_H_INCLUDED +# define YY_GRAM_SRC_PARSE_GRAM_H_INCLUDED /* Enabling traces. */ #ifndef YYDEBUG # define YYDEBUG 1 @@ -344,7 +344,7 @@ typedef struct YYLTYPE int gram_parse (void); -#endif /* !GRAM_SRC_PARSE_GRAM_H */ +#endif /* !YY_GRAM_SRC_PARSE_GRAM_H_INCLUDED */ /* Copy the second part of user declarations. */ @@ -3264,8 +3264,7 @@ add_param (param_type type, char *decl, location loc) } if (! name_start) - complain_at (loc, complaint, - _("missing identifier in parameter declaration")); + complain (&loc, complaint, _("missing identifier in parameter declaration")); else { char *name = xmemdup0 (name_start, strspn (name_start, alphanum)); @@ -3285,8 +3284,8 @@ version_check (location const *loc, char const *version) { if (strverscmp (version, PACKAGE_VERSION) > 0) { - complain_at (*loc, complaint, "require bison %s, but have %s", - version, PACKAGE_VERSION); + complain (loc, complaint, "require bison %s, but have %s", + version, PACKAGE_VERSION); exit (EX_MISMATCH); } } @@ -3294,7 +3293,7 @@ version_check (location const *loc, char const *version) static void gram_error (location const *loc, char const *msg) { - complain_at (*loc, complaint, "%s", msg); + complain (loc, complaint, "%s", msg); } char const * diff --git a/src/parse-gram.h b/src/parse-gram.h index 3e035171..a5a1cfdb 100644 --- a/src/parse-gram.h +++ b/src/parse-gram.h @@ -1,4 +1,4 @@ -/* A Bison parser, made by GNU Bison 2.6.2.873-d87e-dirty. */ +/* A Bison parser, made by GNU Bison 2.6.2.891-3f15-dirty. */ /* Bison interface for Yacc-like parsers in C @@ -30,8 +30,8 @@ This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ -#ifndef GRAM_SRC_PARSE_GRAM_H -# define GRAM_SRC_PARSE_GRAM_H +#ifndef YY_GRAM_SRC_PARSE_GRAM_H_INCLUDED +# define YY_GRAM_SRC_PARSE_GRAM_H_INCLUDED /* Enabling traces. */ #ifndef YYDEBUG # define YYDEBUG 1 @@ -226,4 +226,4 @@ typedef struct YYLTYPE int gram_parse (void); -#endif /* !GRAM_SRC_PARSE_GRAM_H */ +#endif /* !YY_GRAM_SRC_PARSE_GRAM_H_INCLUDED */ diff --git a/src/parse-gram.y b/src/parse-gram.y index 46500db0..f0187fb3 100644 --- a/src/parse-gram.y +++ b/src/parse-gram.y @@ -786,8 +786,7 @@ add_param (param_type type, char *decl, location loc) } if (! name_start) - complain_at (loc, complaint, - _("missing identifier in parameter declaration")); + complain (&loc, complaint, _("missing identifier in parameter declaration")); else { char *name = xmemdup0 (name_start, strspn (name_start, alphanum)); @@ -807,8 +806,8 @@ version_check (location const *loc, char const *version) { if (strverscmp (version, PACKAGE_VERSION) > 0) { - complain_at (*loc, complaint, "require bison %s, but have %s", - version, PACKAGE_VERSION); + complain (loc, complaint, "require bison %s, but have %s", + version, PACKAGE_VERSION); exit (EX_MISMATCH); } } @@ -816,7 +815,7 @@ version_check (location const *loc, char const *version) static void gram_error (location const *loc, char const *msg) { - complain_at (*loc, complaint, "%s", msg); + complain (loc, complaint, "%s", msg); } char const * diff --git a/src/reader.c b/src/reader.c index f658e64e..a67f4c7c 100644 --- a/src/reader.c +++ b/src/reader.c @@ -59,7 +59,7 @@ void grammar_start_symbol_set (symbol *sym, location loc) { if (start_flag) - complain_at (loc, complaint, _("multiple %s declarations"), "%start"); + complain (&loc, complaint, _("multiple %s declarations"), "%start"); else { start_flag = true; @@ -202,9 +202,9 @@ assign_named_ref (symbol_list *p, named_ref *name) if (name->id == sym->tag) { - complain_at (name->loc, Wother, - _("duplicated symbol name for %s ignored"), - quote (sym->tag)); + complain (&name->loc, Wother, + _("duplicated symbol name for %s ignored"), + quote (sym->tag)); named_ref_free (name); } else @@ -247,8 +247,8 @@ grammar_current_rule_begin (symbol *lhs, location loc, ++nvars; } else if (lhs->class == token_sym) - complain_at (loc, complaint, _("rule given for %s, which is a token"), - lhs->tag); + complain (&loc, complaint, _("rule given for %s, which is a token"), + lhs->tag); } @@ -302,14 +302,14 @@ grammar_rule_check (const symbol_list *r) const char *rhs_type = first_rhs->type_name ? first_rhs->type_name : ""; if (!UNIQSTR_EQ (lhs_type, rhs_type)) - complain_at (r->location, Wother, - _("type clash on default action: <%s> != <%s>"), - lhs_type, rhs_type); + complain (&r->location, Wother, + _("type clash on default action: <%s> != <%s>"), + lhs_type, rhs_type); } /* Warn if there is no default for $$ but we need one. */ else - complain_at (r->location, Wother, - _("empty rule for typed nonterminal, and no action")); + complain (&r->location, Wother, + _("empty rule for typed nonterminal, and no action")); } /* Check that symbol values that should be used are in fact used. */ @@ -326,9 +326,9 @@ grammar_rule_check (const symbol_list *r) { warnings warn_flag = midrule_warning ? Wmidrule_values : Wother; if (n) - complain_at (r->location, warn_flag, _("unused value: $%d"), n); + complain (&r->location, warn_flag, _("unused value: $%d"), n); else - complain_at (r->location, warn_flag, _("unset value: $$")); + complain (&r->location, warn_flag, _("unset value: $$")); } } } @@ -339,8 +339,8 @@ grammar_rule_check (const symbol_list *r) if (r->ruleprec && r->ruleprec->tag[0] != '\'' && r->ruleprec->tag[0] != '"' && r->ruleprec->status != declared && !r->ruleprec->prec) - complain_at (r->location, Wother, - _("token for %%prec is not defined: %s"), r->ruleprec->tag); + complain (&r->location, Wother, + _("token for %%prec is not defined: %s"), r->ruleprec->tag); } @@ -430,7 +430,7 @@ grammar_current_rule_prec_set (symbol *precsym, location loc) token. */ symbol_class_set (precsym, token_sym, loc, false); if (current_rule->ruleprec) - complain_at (loc, complaint, _("only one %s allowed per rule"), "%prec"); + complain (&loc, complaint, _("only one %s allowed per rule"), "%prec"); current_rule->ruleprec = precsym; } @@ -440,13 +440,13 @@ void grammar_current_rule_dprec_set (int dprec, location loc) { if (! glr_parser) - complain_at (loc, Wother, _("%s affects only GLR parsers"), - "%dprec"); + complain (&loc, Wother, _("%s affects only GLR parsers"), + "%dprec"); if (dprec <= 0) - complain_at (loc, complaint, _("%s must be followed by positive number"), - "%dprec"); + complain (&loc, complaint, _("%s must be followed by positive number"), + "%dprec"); else if (current_rule->dprec != 0) - complain_at (loc, complaint, _("only one %s allowed per rule"), "%dprec"); + complain (&loc, complaint, _("only one %s allowed per rule"), "%dprec"); current_rule->dprec = dprec; } @@ -457,10 +457,10 @@ void grammar_current_rule_merge_set (uniqstr name, location loc) { if (! glr_parser) - complain_at (loc, Wother, _("%s affects only GLR parsers"), - "%merge"); + complain (&loc, Wother, _("%s affects only GLR parsers"), + "%merge"); if (current_rule->merger != 0) - complain_at (loc, complaint, _("only one %s allowed per rule"), "%merge"); + complain (&loc, complaint, _("only one %s allowed per rule"), "%merge"); current_rule->merger = get_merge_function (name); current_rule->merger_declaration_location = loc; } @@ -559,7 +559,7 @@ packgram (void) /* Don't allow rule_length == INT_MAX, since that might cause confusion with strtol if INT_MAX == LONG_MAX. */ if (rule_length == INT_MAX) - complain_at (rules[ruleno].location, fatal, _("rule is too long")); + complain (&rules[ruleno].location, fatal, _("rule is too long")); /* item_number = symbol_number. But the former needs to contain more: negative rule numbers. */ @@ -677,7 +677,7 @@ check_and_convert_grammar (void) { /* Grammar has been read. Do some checking. */ if (nrules == 0) - complain (fatal, _("no rules in the input grammar")); + complain (NULL, fatal, _("no rules in the input grammar")); /* If the user did not define her ENDTOKEN, do it now. */ if (!endtoken) diff --git a/src/reduce.c b/src/reduce.c index be7f421c..171af398 100644 --- a/src/reduce.c +++ b/src/reduce.c @@ -299,9 +299,9 @@ nonterminals_reduce (void) { nontermmap[i - ntokens] = n++; if (symbols[i]->status != used) - complain_at (symbols[i]->location, Wother, - _("nonterminal useless in grammar: %s"), - symbols[i]->tag); + complain (&symbols[i]->location, Wother, + _("nonterminal useless in grammar: %s"), + symbols[i]->tag); } @@ -383,14 +383,14 @@ static void reduce_print (void) { if (nuseless_nonterminals > 0) - complain (Wother, ngettext ("%d nonterminal useless in grammar", - "%d nonterminals useless in grammar", - nuseless_nonterminals), + complain (NULL, Wother, ngettext ("%d nonterminal useless in grammar", + "%d nonterminals useless in grammar", + nuseless_nonterminals), nuseless_nonterminals); if (nuseless_productions > 0) - complain (Wother, ngettext ("%d rule useless in grammar", - "%d rules useless in grammar", - nuseless_productions), + complain (NULL, Wother, ngettext ("%d rule useless in grammar", + "%d rules useless in grammar", + nuseless_productions), nuseless_productions); } @@ -416,9 +416,9 @@ reduce_grammar (void) reduce_print (); if (!bitset_test (N, accept->number - ntokens)) - complain_at (startsymbol_location, fatal, - _("start symbol %s does not derive any sentence"), - startsymbol->tag); + complain (&startsymbol_location, fatal, + _("start symbol %s does not derive any sentence"), + startsymbol->tag); /* First reduce the nonterminals, as they renumber themselves in the whole grammar. If you change the order, nonterms would be diff --git a/src/scan-code.l b/src/scan-code.l index 62444840..6d7e1381 100644 --- a/src/scan-code.l +++ b/src/scan-code.l @@ -186,7 +186,7 @@ ref -?[0-9]+|{id}|"["{id}"]"|"$" BEGIN SC_LINE_COMMENT; } [$@] { - complain_at (*loc, Wother, _("stray '%s'"), yytext); + complain (loc, Wother, _("stray '%s'"), yytext); obstack_escape (&obstack_for_string, yytext); need_semicolon = true; } @@ -225,10 +225,8 @@ ref -?[0-9]+|{id}|"["{id}"]"|"$" if (outer_brace && !yacc_flag && language_prio == default_prio && skeleton_prio == default_prio && need_semicolon && ! in_cpp) { - complain_at (*loc, Wdeprecated, - _("a ';' might be needed at the end of action code")); - complain_at (*loc, Wdeprecated, - _("future versions of Bison will not add the ';'")); + complain (loc, Wdeprecated, _("a ';' might be needed at the end of action code")); + complain (loc, Wdeprecated, _("future versions of Bison will not add the ';'")); obstack_1grow (&obstack_for_string, ';'); } @@ -499,8 +497,8 @@ parse_ref (char *cp, symbol_list *rule, int rule_length, return num; else { - complain_at (text_loc, complaint, _("integer out of range: %s"), - quote (text)); + complain (&text_loc, complaint, _("integer out of range: %s"), + quote (text)); return INVALID_REF; } } @@ -673,8 +671,8 @@ fetch_type_name (char *cp, char const **type_name, 'text' is needed for error messages. */ ++cp; if (untyped_var_seen) - complain_at (dollar_loc, complaint, - _("explicit type given in untyped grammar")); + complain (&dollar_loc, complaint, + _("explicit type given in untyped grammar")); tag_seen = true; } return cp; @@ -732,15 +730,15 @@ handle_action_dollar (symbol_list *rule, char *text, location dollar_loc) if (union_seen | tag_seen) { if (rule->midrule_parent_rule) - complain_at (dollar_loc, complaint, + complain (&dollar_loc, complaint, _("$$ for the midrule at $%d of %s" " has no declared type"), rule->midrule_parent_rhs_index, quote (effective_rule->content.sym->tag)); else - complain_at (dollar_loc, complaint, - _("$$ of %s has no declared type"), - quote (rule->content.sym->tag)); + complain (&dollar_loc, complaint, + _("$$ of %s has no declared type"), + quote (rule->content.sym->tag)); } else untyped_var_seen = true; @@ -761,9 +759,9 @@ handle_action_dollar (symbol_list *rule, char *text, location dollar_loc) if (!type_name) { if (union_seen | tag_seen) - complain_at (dollar_loc, complaint, - _("$%s of %s has no declared type"), cp, - quote (effective_rule->content.sym->tag)); + complain (&dollar_loc, complaint, + _("$%s of %s has no declared type"), cp, + quote (effective_rule->content.sym->tag)); else untyped_var_seen = true; } diff --git a/src/scan-gram.l b/src/scan-gram.l index 2275d022..8e48148c 100644 --- a/src/scan-gram.l +++ b/src/scan-gram.l @@ -165,7 +165,7 @@ splice (\\[ \f\t\v]*\n)* { /* Comments and white space. */ "," { - complain_at (*loc, Wother, _("stray ',' treated as white space")); + complain (loc, Wother, _("stray ',' treated as white space")); } [ \f\n\t\v] | "//".* ; @@ -241,7 +241,7 @@ splice (\\[ \f\t\v]*\n)* "%yacc" return PERCENT_YACC; {directive} { - complain_at (*loc, complaint, _("invalid directive: %s"), quote (yytext)); + complain (loc, complaint, _("invalid directive: %s"), quote (yytext)); } "=" return EQUAL; @@ -267,7 +267,7 @@ splice (\\[ \f\t\v]*\n)* /* Identifiers may not start with a digit. Yet, don't silently accept "1FOO" as "1 FOO". */ {int}{id} { - complain_at (*loc, complaint, _("invalid identifier: %s"), quote (yytext)); + complain (loc, complaint, _("invalid identifier: %s"), quote (yytext)); } /* Characters. */ @@ -325,7 +325,7 @@ splice (\\[ \f\t\v]*\n)* } . { - complain_at (*loc, complaint, _("invalid character: %s"), quote (yytext)); + complain (loc, complaint, _("invalid character: %s"), quote (yytext)); } <> { @@ -342,7 +342,7 @@ splice (\\[ \f\t\v]*\n)* { - \0 complain_at (*loc, complaint, _("invalid null character")); + \0 complain (loc, complaint, _("invalid null character")); } @@ -394,9 +394,9 @@ splice (\\[ \f\t\v]*\n)* {id} { if (bracketed_id_str) { - complain_at (*loc, complaint, - _("unexpected identifier in bracketed name: %s"), - quote (yytext)); + complain (loc, complaint, + _("unexpected identifier in bracketed name: %s"), + quote (yytext)); } else { @@ -417,10 +417,10 @@ splice (\\[ \f\t\v]*\n)* } } else - complain_at (*loc, complaint, _("an identifier expected")); + complain (loc, complaint, _("an identifier expected")); } . { - complain_at (*loc, complaint, _("invalid character in bracketed name: %s"), + complain (loc, complaint, _("invalid character in bracketed name: %s"), quote (yytext)); } <> { @@ -518,12 +518,12 @@ splice (\\[ \f\t\v]*\n)* /* FIXME: Eventually, make these errors. */ if (last_string[0] == '\0') { - complain_at (*loc, Wother, _("empty character literal")); + complain (loc, Wother, _("empty character literal")); /* '\0' seems dangerous even if we are about to complain. */ val->character = '\''; } else if (last_string[1] != '\0') - complain_at (*loc, Wother, + complain (loc, Wother, _("extra characters in character literal")); } if (yytext[0] == '\n') @@ -540,12 +540,12 @@ splice (\\[ \f\t\v]*\n)* /* FIXME: Eventually, make these errors. */ if (last_string[0] == '\0') { - complain_at (*loc, Wother, _("empty character literal")); + complain (loc, Wother, _("empty character literal")); /* '\0' seems dangerous even if we are about to complain. */ val->character = '\''; } else if (last_string[1] != '\0') - complain_at (*loc, Wother, + complain (loc, Wother, _("extra characters in character literal")); } unexpected_eof (token_start, "'"); @@ -599,7 +599,7 @@ splice (\\[ \f\t\v]*\n)* \\[0-7]{1,3} { unsigned long int c = strtoul (yytext + 1, NULL, 8); if (!c || UCHAR_MAX < c) - complain_at (*loc, complaint, _("invalid number after \\-escape: %s"), + complain (loc, complaint, _("invalid number after \\-escape: %s"), yytext+1); else obstack_1grow (&obstack_for_string, c); @@ -609,7 +609,7 @@ splice (\\[ \f\t\v]*\n)* verify (UCHAR_MAX < ULONG_MAX); unsigned long int c = strtoul (yytext + 2, NULL, 16); if (!c || UCHAR_MAX < c) - complain_at (*loc, complaint, _("invalid number after \\-escape: %s"), + complain (loc, complaint, _("invalid number after \\-escape: %s"), yytext+1); else obstack_1grow (&obstack_for_string, c); @@ -629,7 +629,7 @@ splice (\\[ \f\t\v]*\n)* \\(u|U[0-9abcdefABCDEF]{4})[0-9abcdefABCDEF]{4} { int c = convert_ucn_to_byte (yytext); if (c <= 0) - complain_at (*loc, complaint, _("invalid number after \\-escape: %s"), + complain (loc, complaint, _("invalid number after \\-escape: %s"), yytext+1); else obstack_1grow (&obstack_for_string, c); @@ -641,7 +641,7 @@ splice (\\[ \f\t\v]*\n)* p = quote (p); else p = quotearg_style_mem (escape_quoting_style, p, 1); - complain_at (*loc, complaint, _("invalid character after \\-escape: %s"), + complain (loc, complaint, _("invalid character after \\-escape: %s"), p); } } @@ -873,7 +873,7 @@ scan_integer (char const *number, int base, location loc) if (INT_MAX < num) { - complain_at (loc, complaint, _("integer out of range: %s"), + complain (&loc, complaint, _("integer out of range: %s"), quote (number)); num = INT_MAX; } @@ -952,7 +952,7 @@ handle_syncline (char *args, location loc) *strchr (file, '"') = '\0'; if (INT_MAX <= lineno) { - complain_at (loc, Wother, _("line number overflow")); + complain (&loc, Wother, _("line number overflow")); lineno = INT_MAX; } current_file = uniqstr_new (file); @@ -976,7 +976,7 @@ unexpected_end (boundary start, char const *msgid, char const *token_end) // Instead of '\'', display "'". if (STREQ (token_end, "'\\''")) token_end = "\"'\""; - complain_at (loc, complaint, _(msgid), token_end); + complain (&loc, complaint, _(msgid), token_end); } diff --git a/src/scan-skel.l b/src/scan-skel.l index 5126d5f2..9854727d 100644 --- a/src/scan-skel.l +++ b/src/scan-skel.l @@ -134,7 +134,7 @@ static void fail_for_invalid_at (char const *at); { - <> complain (fatal, _("unclosed %s directive in skeleton"), argv[0]); + <> complain (NULL, fatal, _("unclosed %s directive in skeleton"), argv[0]); } %% @@ -194,19 +194,19 @@ at_directive_perform (int argc, char *argv[], char **outnamep, int *out_linenop) switch (argc) { case 2: - complain (w, "%s", _(argv[1])); + complain (NULL, w, "%s", _(argv[1])); break; case 3: - complain (w, _(argv[1]), argv[2]); + complain (NULL, w, _(argv[1]), argv[2]); break; case 4: - complain (w, _(argv[1]), argv[2], argv[3]); + complain (NULL, w, _(argv[1]), argv[2], argv[3]); break; case 5: - complain (w, _(argv[1]), argv[2], argv[3], argv[4]); + complain (NULL, w, _(argv[1]), argv[2], argv[3], argv[4]); break; case 6: - complain (w, _(argv[1]), argv[2], argv[3], argv[4], argv[5]); + complain (NULL, w, _(argv[1]), argv[2], argv[3], argv[4], argv[5]); break; default: fail_for_at_directive_too_many_args (argv[0]); @@ -226,19 +226,19 @@ at_directive_perform (int argc, char *argv[], char **outnamep, int *out_linenop) switch (argc) { case 4: - complain_at (loc, w, "%s", _(argv[3])); + complain (&loc, w, "%s", _(argv[3])); break; case 5: - complain_at (loc, w, _(argv[3]), argv[4]); + complain (&loc, w, _(argv[3]), argv[4]); break; case 6: - complain_at (loc, w, _(argv[3]), argv[4], argv[5]); + complain (&loc, w, _(argv[3]), argv[4], argv[5]); break; case 7: - complain_at (loc, w, _(argv[3]), argv[4], argv[5], argv[6]); + complain (&loc, w, _(argv[3]), argv[4], argv[5], argv[6]); break; case 8: - complain_at (loc, w, _(argv[3]), argv[4], argv[5], argv[6], + complain (&loc, w, _(argv[3]), argv[4], argv[5], argv[6], argv[7]); break; default: @@ -267,19 +267,19 @@ at_directive_perform (int argc, char *argv[], char **outnamep, int *out_linenop) static void fail_for_at_directive_too_few_args (char const *at_directive_name) { - complain (fatal, _("too few arguments for %s directive in skeleton"), + complain (NULL, fatal, _("too few arguments for %s directive in skeleton"), at_directive_name); } static void fail_for_at_directive_too_many_args (char const *at_directive_name) { - complain (fatal, _("too many arguments for %s directive in skeleton"), + complain (NULL, fatal, _("too many arguments for %s directive in skeleton"), at_directive_name); } static void fail_for_invalid_at (char const *at) { - complain (fatal, "invalid @ in skeleton: %s", at); + complain (NULL, fatal, "invalid @ in skeleton: %s", at); } diff --git a/src/symlist.c b/src/symlist.c index 005331b2..196db4c8 100644 --- a/src/symlist.c +++ b/src/symlist.c @@ -175,7 +175,7 @@ symbol_list_n_type_name_get (symbol_list *l, location loc, int n) l = symbol_list_n_get (l, n); if (!l) { - complain_at (loc, complaint, _("invalid $ value: $%d"), n); + complain (&loc, complaint, _("invalid $ value: $%d"), n); return NULL; } aver (l->content_type == SYMLIST_SYMBOL); diff --git a/src/symtab.c b/src/symtab.c index 66e20c05..b72bbb01 100644 --- a/src/symtab.c +++ b/src/symtab.c @@ -61,8 +61,8 @@ symbol_new (uniqstr tag, location loc) /* If the tag is not a string (starts with a double quote), check that it is valid for Yacc. */ if (tag[0] != '\"' && tag[0] != '\'' && strchr (tag, '-')) - complain_at (loc, Wyacc, - _("POSIX Yacc forbids dashes in symbol names: %s"), tag); + complain (&loc, Wyacc, + _("POSIX Yacc forbids dashes in symbol names: %s"), tag); res->tag = tag; res->location = loc; @@ -81,7 +81,7 @@ symbol_new (uniqstr tag, location loc) res->status = undeclared; if (nsyms == SYMBOL_NUMBER_MAXIMUM) - complain (fatal, _("too many symbols in input grammar (limit is %d)"), + complain (NULL, fatal, _("too many symbols in input grammar (limit is %d)"), SYMBOL_NUMBER_MAXIMUM); nsyms++; return res; @@ -328,7 +328,7 @@ symbol_class_set (symbol *sym, symbol_class class, location loc, bool declaring) bool warned = false; if (sym->class != unknown_sym && sym->class != class) { - complain_at (loc, complaint, _("symbol %s redefined"), sym->tag); + complain (&loc, complaint, _("symbol %s redefined"), sym->tag); // Don't report both "redefined" and "redeclared". warned = true; } @@ -343,7 +343,7 @@ symbol_class_set (symbol *sym, symbol_class class, location loc, bool declaring) if (declaring) { if (sym->status == declared && !warned) - complain_at (loc, Wother, _("symbol %s redeclared"), sym->tag); + complain (&loc, Wother, _("symbol %s redeclared"), sym->tag); sym->status = declared; } } @@ -364,8 +364,8 @@ symbol_user_token_number_set (symbol *sym, int user_token_number, location loc) user_token_numberp = &sym->alias->user_token_number; if (*user_token_numberp != USER_NUMBER_UNDEFINED && *user_token_numberp != user_token_number) - complain_at (loc, complaint, _("redefining user token number of %s"), - sym->tag); + complain (&loc, complaint, _("redefining user token number of %s"), + sym->tag); *user_token_numberp = user_token_number; /* User defined $end token? */ @@ -392,11 +392,11 @@ symbol_check_defined (symbol *sym) if (sym->class == unknown_sym) { assert (sym->status != declared); - complain_at (sym->location, - sym->status == needed ? complaint : Wother, - _("symbol %s is used, but is not defined as a token" - " and has no rules"), - sym->tag); + complain (&sym->location, + sym->status == needed ? complaint : Wother, + _("symbol %s is used, but is not defined as a token" + " and has no rules"), + sym->tag); sym->class = nterm_sym; sym->number = nvars++; } @@ -427,14 +427,14 @@ semantic_type_check_defined (semantic_type *sem_type) for (int i = 0; i < 2; ++i) if (sem_type->props[i].kind != CODE_PROPS_NONE && ! sem_type->props[i].is_used) - complain_at (sem_type->location, Wother, - _("useless %s for type <%s>"), - code_props_type_string (i), sem_type->tag); + complain (&sem_type->location, Wother, + _("useless %s for type <%s>"), + code_props_type_string (i), sem_type->tag); } else - complain_at (sem_type->location, Wother, - _("type <%s> is used, but is not associated to any symbol"), - sem_type->tag); + complain (&sem_type->location, Wother, + _("type <%s> is used, but is not associated to any symbol"), + sem_type->tag); return true; } @@ -457,10 +457,10 @@ void symbol_make_alias (symbol *sym, symbol *str, location loc) { if (str->alias) - complain_at (loc, Wother, + complain (&loc, Wother, _("symbol %s used more than once as a literal string"), str->tag); else if (sym->alias) - complain_at (loc, Wother, + complain (&loc, Wother, _("symbol %s given more than one literal string"), sym->tag); else { @@ -950,11 +950,11 @@ symbols_pack (void) symbols_token_translations_init (); if (startsymbol->class == unknown_sym) - complain_at (startsymbol_location, fatal, - _("the start symbol %s is undefined"), - startsymbol->tag); + complain (&startsymbol_location, fatal, + _("the start symbol %s is undefined"), + startsymbol->tag); else if (startsymbol->class == token_sym) - complain_at (startsymbol_location, fatal, - _("the start symbol %s is a token"), - startsymbol->tag); + complain (&startsymbol_location, fatal, + _("the start symbol %s is a token"), + startsymbol->tag); }