Hello,

Since r188786, expmed.c has this code:

      bool is_neg;
(...)
      if (CONST_INT_P (scalar_op1))
        {
          coeff = INTVAL (scalar_op1);
          is_neg = coeff < 0;
        }
      else if (CONST_DOUBLE_P (scalar_op1))
        {
          if (CONST_DOUBLE_HIGH (scalar_op1) == 0
              && CONST_DOUBLE_LOW (scalar_op1) > 0)
            {
              coeff = CONST_DOUBLE_LOW (scalar_op1);
              is_neg = false;
            }
          else if (CONST_DOUBLE_LOW (scalar_op1) == 0)
            {
              coeff = CONST_DOUBLE_HIGH (scalar_op1);
(...)
              goto skip_synth;
            }
        }
      else
        goto skip_synth;
(...)
      if (is_neg && mode_bitsize > HOST_BITS_PER_WIDE_INT)

This results in warnings for expmed.c during bootstrap on
powerpc64-unknown-linux-gnu:

../../trunk/gcc/expmed.c: In function ‘rtx_def* expand_mult(machine_mode, rtx,
rtx, rtx, int)’:
../../trunk/gcc/expmed.c:3215:7: warning: ‘is_neg’ may be used uninitialized
in this function [-Wmaybe-uninitialized]
       if (is_neg && mode_bitsize > HOST_BITS_PER_WIDE_INT)
       ^
../../trunk/gcc/expmed.c:3236:7: warning: ‘coeff’ may be used uninitialized in
this function [-Wmaybe-uninitialized]
       if (choose_mult_variant (mode, coeff, &algorithm, &variant, max_cost))
       ^

Could you have a look please?

Ciao!
Steven

Reply via email to