https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102892
Eric Botcazou <ebotcazou at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |ebotcazou at gcc dot gnu.org Resolution|FIXED |--- Status|RESOLVED |REOPENED --- Comment #8 from Eric Botcazou <ebotcazou at gcc dot gnu.org> --- The test fails (to link) on SPARC though, here's the .optimized dump at -O3: ;; Function main (main, funcdef_no=0, decl_uid=1488, cgraph_uid=1, symbol_order=1) (executed once) Removing basic block 8 Removing basic block 9 Removing basic block 10 Removing basic block 11 int main () { unsigned int ivtmp.8; long int a; long int _1; void * _2; unsigned int _17; <bb 2> [local count: 44232128]: if (a_9(D) != 1) goto <bb 6>; [89.00%] else goto <bb 7>; [11.00%] <bb 3> [local count: 715863673]: # ivtmp.8_23 = PHI <ivtmp.8_24(5), ivtmp.8_7(6)> bar (); _2 = (void *) ivtmp.8_23; _1 = MEM[(long int *)_2]; if (_1 == 1) goto <bb 4>; [20.24%] else goto <bb 5>; [79.76%] <bb 4> [local count: 144890806]: foo (); <bb 5> [local count: 715863674]: ivtmp.8_24 = ivtmp.8_23 + 4; if (_17 != ivtmp.8_24) goto <bb 3>; [66.67%] else goto <bb 7>; [33.33%] <bb 6> [local count: 238597362]: ivtmp.8_7 = (unsigned int) &b; _17 = ivtmp.8_7 + 8; goto <bb 3>; [100.00%] <bb 7> [local count: 44232131]: return 0; }