This testcase ICEs GCC at -O1, on x86_64: void foo () { short x, y, z; char a[3]; for (x = 0; x < 2; x++) for (y = 0; y < 2; y++) if (a[y]) { for (z = y - 1; z > -1; z--) a[z]++; } } I'm also attaching a patch fixing the problem and successfully regtested.
Created attachment 335399 [details] gcc41 fix
An advisory has been issued which should help the problem described in this bug report. This report is therefore being closed with a resolution of ERRATA. For more information on therefore solution and/or where to find the updated files, please follow the link below. You may reopen this bug report if the solution does not work for you. http://rhn.redhat.com/errata/RHBA-2009-1376.html