This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/39074] PTA constraint processing for *x = y is wrong
- From: "rguenth at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 3 Feb 2009 09:17:26 -0000
- Subject: [Bug tree-optimization/39074] PTA constraint processing for *x = y is wrong
- References: <bug-39074-10053@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #4 from rguenth at gcc dot gnu dot org 2009-02-03 09:17 -------
Yes, but as the store to y is via *x and x points to { ANYTHING } (via the
non-pointer (int ***)q) only (as x already includes ANYTHING we do not add
a for the second constraint), so for *x = &i we fail to add a to y.
For reference, here are the constraints:
a = &y
p_4 = &ANYTHING
p_1 = p_4
p_1 = &a
x_6 = *p_1
derefaddrtmp.9 = &i
*x_6 = derefaddrtmp.9
y.0_7 = y
and the solutions:
a = { y }
y = same as y.0_7
p_4 = { ANYTHING }
p_1 = { ANYTHING a }
x_6 = { ANYTHING }
i = { }
derefaddrtmp.9 = { i }
y.0_7 = { }
while correct would be if everything would point to at least i (through
the effective *ANYTHING = &i constraint)
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39074