--- Comment #6 from belyshev at depni dot sinp dot msu dot ru 2006-12-18
08:55 ---
Appears to be fixed by:
2006-12-12 Daniel Berlin <[EMAIL PROTECTED]>
* tree-ssa-structalias.c (handle_ptr_arith): Return false when we
can't handle the pointer arithmetic.
--
belys
--- Comment #5 from dberlin at gcc dot gnu dot org 2006-11-05 00:46 ---
Subject: Re: [4.2/4.3 Regression] Wrong code with arrays
>
> so do we miss it because it's a PHI argument or because in the first case
> we point one after the last element of the array and in the second case to
>
--- Comment #4 from rguenth at gcc dot gnu dot org 2006-11-04 22:33 ---
The points-to-set for i is wrong. The difference before the two aliasing
passes are
iD.1615_8 = &aD.1614[3];
iD.1615_9 = iD.1615_8 - 4B;
goto ();
# SUCC: 4 (fallthru)
# BLOCK 3
# PRED: 4 (true)
:;
--- Comment #3 from pinskia at gcc dot gnu dot org 2006-11-04 22:18 ---
(In reply to comment #2)
> Starting with DOM we have
No, DOM is not related to the problem.
Before alias2:
# SFT.3_31 = PHI ;
# SFT.2_30 = PHI ;
# SFT.1_29 = PHI ;
# i_28 = PHI ;
:;
# VUSE ;
t.0_11 = t;
--- Comment #2 from rguenth at gcc dot gnu dot org 2006-11-04 22:10 ---
Starting with DOM we have
:
# SFT.3_3 = V_MUST_DEF ;
a[0] = 0;
# SFT.2_5 = V_MUST_DEF ;
a[1] = 1;
# SFT.1_7 = V_MUST_DEF ;
a[2] = 2;
...
:;
# VUSE ;
D.1621_14 = a[1];
t.0_15 = t.0_11;
D
--- Comment #1 from rguenth at gcc dot gnu dot org 2006-11-04 22:07 ---
Confirmed. In final cleanup we have
main ()
{
int a[3];
int D.1620;
:
a[0] = 0;
D.1620 = t + 1;
a[2] = D.1620;
a[1] = D.1620;
if (D.1620 != 1) goto ; else goto ;
:;
abort ();
:;
exit (0);
}
!
--
pinskia at gcc dot gnu dot org changed:
What|Removed |Added
Target Milestone|--- |4.2.0
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29716