------- 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