[ forwarded from http://bugs.debian.org/356896 ]
void abort(void); __attribute__((noinline)) int *foo(int *start) { int *tmp; for (tmp = start + 100; tmp > start; --tmp) ; return tmp; } int main() { int x[100]; if (foo(x) != x) abort(); return 0; } aborts with 4.1.0 20051124 at -O1 or higher does not abort at -O0, or with 4.0.3 or 4.2.0 20060304 -- Summary: wrong final value of indaction variable calculated Product: gcc Version: 4.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: debian-gcc at lists dot debian dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26763