Testcase: double u[1782225]; int foo(int N, int *res) { unsigned int i, j; double sum = 0; for (i = 0; i < N; i++) { for (j = 0; j < N; j++) { sum = sum + u[i + 1335 * j]; } } *res = sum + N; }
Patch in PR 22368 finds this. ltrans-3.c: In function 'foo': ltrans-3.c:6: error: statement types mismatch lletmp.14D.1311_31 = 0; unsigned intD.3 intD.0 -- Summary: loop linear produces type mis-match Product: gcc Version: 4.1.0 Status: UNCONFIRMED Severity: normal Priority: P2 Component: tree-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: pinskia at gcc dot gnu dot org CC: dberlin at gcc dot gnu dot org,gcc-bugs at gcc dot gnu dot org OtherBugsDependingO 22368 nThis: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22373