This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/27639] [4.1/4.2 regression] VRP miscompilation of simple loop
- From: "rguenther at suse dot de" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 17 May 2006 15:06:38 -0000
- Subject: [Bug tree-optimization/27639] [4.1/4.2 regression] VRP miscompilation of simple loop
- References: <bug-27639-87@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #22 from rguenther at suse dot de 2006-05-17 15:06 -------
Subject: Re: [4.1/4.2 regression] VRP miscompilation
of simple loop
On Wed, 17 May 2006, rakdver at gcc dot gnu dot org wrote:
> ------- Comment #8 from rakdver at gcc dot gnu dot org 2006-05-17 13:11 -------
> > It's
> >
> > (set_scalar_evolution
> > (scalar = D.1993_10)
> > (scalar_evolution = {79, +, -1}_1))
> > )
>
>
> Then it is a bug in chrec_convert (might also be related to PR 27619).
Index: tree-chrec.c
===================================================================
*** tree-chrec.c (revision 113852)
--- tree-chrec.c (working copy)
*************** chrec_convert (tree type, tree chrec, tr
*** 1150,1156 ****
1, 2, ..., 127, -128, ... The result should not be
{(schar)1, +, (schar)1}_x, but instead, we should keep the
conversion: (schar) {(uchar)1, +, (uchar)1}_x. */
! if (scev_probably_wraps_p (type, base, step, at_stmt, loop,
&dummy, &dummy))
goto failed_to_convert;
--- 1150,1156 ----
1, 2, ..., 127, -128, ... The result should not be
{(schar)1, +, (schar)1}_x, but instead, we should keep the
conversion: (schar) {(uchar)1, +, (uchar)1}_x. */
! if (scev_probably_wraps_p (ct, base, step, at_stmt, loop,
&dummy, &dummy))
goto failed_to_convert;
fixes it. Looks even obvious to me.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27639