This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: combine bug fix.
- To: Graham Stott <grahams at redhat dot com>
- Subject: Re: combine bug fix.
- From: law at redhat dot com
- Date: Tue, 31 Jul 2001 14:53:56 -0600
- cc: gcc-patches at gcc dot gnu dot org
- Reply-To: law at redhat dot com
In message <3B672C5C.5351DAAE@redhat.com>you write:
> All
>
> While trying to build newlib on for x86-x-m68k-elf toolchain with enable-ch
> ecking
> enabled compiler I encountered the following abort
>
> /usr/local/src/newlib/newlib-1.9.0/newlib/libm/math/k_rem_pio2.c: In functi
> on `__kernel_rem_pio2':
> /usr/local/src/newlib/newlib-1.9.0/newlib/libm/math/k_rem_pio2.c:318: RTL c
> heck: access of elt 1 of `not' with last elt 0 in combine_simplify_rtx, at
> combine.c:3868
>
> The RTL in question was
>
> (not:SI (ashiftrt:SI (reg:SI 55)
> (const_int 2 [0x2])))
>
> The problem occurrs because we are trying to apply XEXP (x, 1)
> on the above RTL. Now NOT only has one operand so this wrong.
>
> The XEXP (x, 1) appears apart of a XEXP (x, 1) == const1_rtx
> test which looks entirely bogus to me so I have deleted the
> test and I have updated the comment to include the NOT so that
> so that the transformation actually makes sense.
>
> Bootstrapped x86-linux.
>
> ChangeLog
>
> * combine.c (combine_simplify_rtx): Update comment and
> remove erroneous test.
Approved. Please install.
Thanks,
jeff