https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66007

--- Comment #9 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
(In reply to Paolo Carlini from comment #8)
> Index: typeck2.c
> ===================================================================
> --- typeck2.c (revision 222767)
> +++ typeck2.c (working copy)
> @@ -959,10 +959,10 @@ check_narrowing (tree type, tree init, tsubst_flag
>        else if (complain & tf_error)
>       {
>         global_dc->pedantic_errors = 1;
> -       if (!pedwarn (EXPR_LOC_OR_LOC (init, input_location), OPT_Wnarrowing,
> -                     "narrowing conversion of %qE from %qT to %qT "
> -                     "inside { }", init, ftype, type))
> -         ok = true;
> +       pedwarn (EXPR_LOC_OR_LOC (init, input_location), OPT_Wnarrowing,
> +                "narrowing conversion of %qE from %qT to %qT "
> +                "inside { }", init, ftype, type);
> +       ok = true;
>         global_dc->pedantic_errors = flag_pedantic_errors;
>       }
>      }

Another possibility would be to check if the pedwarn increased errorcount, so
something like:
          int savederrorcount = errorcount;
          pedwarn (EXPR_LOC_OR_LOC (init, input_location), OPT_Wnarrowing,
                   "narrowing conversion of %qE from %qT to %qT "
                   "inside { }", init, ftype, type);
          if (errorcount != savederrorcount)
            ok = true;

Reply via email to