http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58732
--- Comment #1 from Zhendong Su <su at cs dot ucdavis.edu> --- Below is a simpler testcase that should demonstrate the same issue: ---------------------------------- int printf (const char *, ...); int a, b[2]; int main () { for (a = 1; a >= 0; a--) { b[1] = 1; b[a] = 0; } if (b[1] != 1) __builtin_abort(); return 0; }