[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