http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56448
Bug #: 56448 Summary: cc1 hangs on volatile array with -O or above Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization AssignedTo: unassig...@gcc.gnu.org ReportedBy: dhaze...@yahoo.com The following snippet (reduced from a larger test case) causes top-of-trunk cc1 to hang (infinite loop) on x86_64-linux using -O or above. This is a regression from 4.7.2 which does not have this issue. $ cat volatile.c volatile int a[1]; int b; void fn1 () { for (;;) { int *c[3][6] = { 0, 0, 0, &b, 0, 0, 0, 0, &b, 0, 0, 0, 0, 0, 0, 0, &b, (int *)&a[0] }; b = *c[2][5]; } } $ gcc-trunk --version gcc-trunk (GCC) 4.8.0 20130225 (experimental) [trunk revision 196255] $ gcc-4.7 -O -c volatile.c $ gcc-trunk -c volatile.c $ gcc-trunk -O -c volatile.c <hangs>