[PATCH] Fix a VTA ICE caused by reload DEBUG_INSN substitution

Richard Guenther richard.guenther@gmail.com
Tue Sep 22 09:08:00 GMT 2009


On Mon, Sep 21, 2009 at 8:14 PM, Jakub Jelinek <jakub@redhat.com> wrote:
> Hi!
>
> This patch fixes very similar problem to what
> http://gcc.gnu.org/ml/gcc-patches/2009-09/msg00779.html
> fixed, but this time in reload.  If equiv is a constant, and a reg that is
> being replaced is insice of e.g. ZERO_EXTEND, things will crash later on, as
> (zero_extend:DI (const_int 0)) is invalid.
>
> Fixed thusly, bootstrapped/regtested on x86_64-linux and i686-linux.  Ok for
> trunk?

Ok.  I suppose you have a testcase?

Thanks,
Richard.

> 2009-09-21  Jakub Jelinek  <jakub@redhat.com>
>
>        * reload1.c (reload): Call wrap_constant when substituting
>        reg for equiv inside of DEBUG_INSNs.
>
> --- gcc/reload1.c.jj    2009-09-15 16:11:01.000000000 +0200
> +++ gcc/reload1.c       2009-09-21 17:30:11.000000000 +0200
> @@ -1273,6 +1273,7 @@ reload (rtx first, int global)
>                                                SUBREG_BYTE (x));
>                  else
>                    gcc_unreachable ();
> +                 *loc = wrap_constant (GET_MODE (x), *loc);
>                }
>        }
>     }
>
>        Jakub
>



More information about the Gcc-patches mailing list