This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/13146] inheritance for nonoverlapping_component_refs_p
- From: "dann at godzilla dot ics dot uci dot edu" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 15 Mar 2008 00:29:00 -0000
- Subject: [Bug c++/13146] inheritance for nonoverlapping_component_refs_p
- References: <bug-13146-1008@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #8 from dann at godzilla dot ics dot uci dot edu 2008-03-15 00:28 -------
(In reply to comment #7)
> The testcase is fixed by the SCCVN alias-oracle patch.
Are you sure? I still see the problem (.final_cleanup dump):
void bar(first*, multi*) (s1, s3)
{
<bb 2>:
s1->f1 = 0;
s3->f3 = 0;
s1->f1 = s1->f1 + 1;
s3->f3 = s3->f3 + 1;
s1->f1 = s1->f1 + 1;
s3->f3 = s3->f3 + 1;
if (s1->f1 != 2)
goto <bb 3>;
else
goto <bb 4>;
<bb 3>:
link_error () [tail call];
<bb 4>:
return;
}
void foo(first*, second*) (s1, s2)
{
<bb 2>:
s1->f1 = 0;
s2->f2 = 0;
s1->f1 = s1->f1 + 1;
s2->f2 = s2->f2 + 1;
s1->f1 = s1->f1 + 1;
s2->f2 = s2->f2 + 1;
if (s1->f1 != 2)
goto <bb 3>;
else
goto <bb 4>;
<bb 3>:
link_error () [tail call];
<bb 4>:
return;
}
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13146