X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/42d101da8dff74111b409fb92bd2b0853067d857..cc8962bdde81b04aa728aef21e53b4a08a0debfe:/src/complain.c diff --git a/src/complain.c b/src/complain.c index 44e1b1ea..fdc4b542 100644 --- a/src/complain.c +++ b/src/complain.c @@ -68,6 +68,7 @@ static const char * const warnings_args[] = "other", "all", "error", + "everything", 0 }; @@ -83,7 +84,8 @@ static const int warnings_types[] = Wprecedence, Wother, Wall, - Werror + Werror, + Weverything }; ARGMATCH_VERIFY (warnings_args, warnings_types); @@ -94,10 +96,10 @@ warning_argmatch (char const *arg, size_t no, size_t err) int value = XARGMATCH ("--warning", arg + no + err, warnings_args, warnings_types); - /* -Wnone == -Wno-all, and -Wno-none == -Wall. */ + /* -Wnone == -Wno-everything, and -Wno-none == -Weverything. */ if (!value) { - value = Wall; + value = Weverything; no = !no; } @@ -145,7 +147,7 @@ warnings_argmatch (char *args) else if (STREQ (args, "no-error")) { warnings_are_errors = false; - warning_argmatch ("no-error=all", 3, 6); + warning_argmatch ("no-error=everything", 3, 6); } else { @@ -365,3 +367,13 @@ deprecated_directive (location const *loc, char const *old, char const *upd) _("deprecated directive: %s, use %s"), quote (old), quote_n (1, upd)); } + +void +duplicate_directive (char const *directive, + location first, location second) +{ + unsigned i = 0; + complain (&second, complaint, _("only one %s allowed per rule"), directive); + i += SUB_INDENT; + complain_indent (&first, complaint, &i, _("previous declaration")); +}