[PATCH] Workaround -Wmaybe-uninitialized false positives during profiledbootstrap

Richard Biener richard.guenther@gmail.com
Thu Jan 15 11:27:00 GMT 2015


On Thu, Jan 15, 2015 at 12:10 PM, Jakub Jelinek <jakub@redhat.com> wrote:
> Hi!
>
> I ran into -Werror=maybe-uninitialized errors during profiledbootstrap
> (../configure --enable-languages=c,c++ --enable-checking=release;
> make -j16 profiledboostrap) before I hit a miscompilation I'm going to file.
>
> Is this ok for trunk, or do we want to work around them differently?

I wonder if we can arrange profiledbootstrap to use --disable-werror
unless --enable-werror is specified explicitely...  Similarly useful
if we could do a similar thing from non-standard build-configs...

I also wonder if we shouldn't simply fix the uninit pass ...

Richard.

> 2015-01-14  Jakub Jelinek  <jakub@redhat.com>
>
>         * gengtype.c (create_user_defined_type): Workaround
>         -Wmaybe-uninitialized false positives.
>         * cse.c (fold_rtx): Likewise.
>         * loop-invariant.c (gain_for_invariant): Likewise.
>
> --- gcc/gengtype.c.jj   2015-01-14 17:46:50.000000000 +0100
> +++ gcc/gengtype.c      2015-01-14 18:15:19.285494736 +0100
> @@ -611,7 +611,7 @@ create_user_defined_type (const char *ty
>          comma-separated list of strings, implicitly assumed to
>          be type names, potentially with "*" characters.  */
>        char *arg = open_bracket + 1;
> -      char *next;
> +      char *next = NULL;
>        char *type_id = strtoken (arg, ",>", &next);
>        pair_p fields = 0;
>        while (type_id)
> --- gcc/cse.c.jj        2015-01-14 17:49:01.000000000 +0100
> +++ gcc/cse.c   2015-01-14 19:02:40.638325329 +0100
> @@ -3093,8 +3093,8 @@ fold_rtx (rtx x, rtx_insn *insn)
>    int changed = 0;
>
>    /* Operands of X.  */
> -  rtx folded_arg0;
> -  rtx folded_arg1;
> +  rtx folded_arg0 = NULL_RTX;
> +  rtx folded_arg1 = NULL_RTX;
>
>    /* Constant equivalents of first three operands of X;
>       0 when no such equivalent is known.  */
> --- gcc/loop-invariant.c.jj     2015-01-14 17:50:10.000000000 +0100
> +++ gcc/loop-invariant.c        2015-01-14 21:13:23.780857707 +0100
> @@ -1268,7 +1268,7 @@ gain_for_invariant (struct invariant *in
>                     bool speed, bool call_p)
>  {
>    int comp_cost, size_cost;
> -  enum reg_class cl;
> +  enum reg_class cl = NO_REGS;
>    int ret;
>
>    actual_stamp++;
>
>         Jakub



More information about the Gcc-patches mailing list