[PATCH] Fix -Werror= handling for Joined warnings, add a few missing Warning keywords (PRs c/48088, c/68657)

Jakub Jelinek jakub@redhat.com
Fri Dec 4 19:37:00 GMT 2015


On Fri, Dec 04, 2015 at 06:19:19PM +0000, Manuel López-Ibáñez wrote:
> On 4 December 2015 at 17:53, Jakub Jelinek <jakub@redhat.com> wrote:
> > +
> > +                 if (e->unknown_error)
> > +                   error_at (loc, e->unknown_error, option->opt_text);
> > +                 else
> > +                   error_at (loc, "unrecognized argument in option %qs",
> > +                             option->opt_text);
> 
> The same code that handles command-line options has:
> 
>       if (e->unknown_error)
>     error_at (loc, e->unknown_error, decoded->arg);
>       else
>     error_at (loc, "unrecognized argument in option %qs", opt);
> 
> My guess is that the first error_at should use arg instead of
> option->opt_text to be equivalent. Of course, ideally, this code would
> not be duplicated, but rather merged "somehow".

Consider that fixed.  As for duplication, as one operates on
cl_decoded_option and the other not etc., this is harder, plus
the missing and non-int cases are IMHO short enough that it is not worth
trying hard to avoid the duplication.
For the enum case which is larger, it is maybe worth adding
a helper routine for it, which would need probably only
location_t loc, const struct cl_enum *e, const char *opt, unsigned int lang_mask
arguments.  Can try that on Monday.

	Jakub



More information about the Gcc-patches mailing list