http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47899
Summary: ICE in get_loop_body, at cfgloop.c:831 Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassig...@gcc.gnu.org ReportedBy: reg...@cs.utah.edu CC: cheny...@cs.utah.edu Host: i686-pc-linux-gnu Target: i686-pc-linux-gnu Build: i686-pc-linux-gnu regehr@home:~/volatile/bugs/tmp351$ current-gcc -v Using built-in specs. COLLECT_GCC=current-gcc COLLECT_LTO_WRAPPER=/mnt/z/z/compiler-install/gcc-r170512-install/libexec/gcc/i686-pc-linux-gnu/4.6.0/lto-wrapper Target: i686-pc-linux-gnu Configured with: ../configure --with-libelf=/usr/local --enable-lto --prefix=/mnt/z/z/compiler-install/gcc-r170512-install --program-prefix=r170512- --enable-languages=c,c++ Thread model: posix gcc version 4.6.0 20110226 (experimental) (GCC) regehr@home:~/volatile/bugs/tmp351$ current-gcc -O -funroll-loops small.c -o small small.c: In function ‘main’: small.c:53:1: internal compiler error: in get_loop_body, at cfgloop.c:831 Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. regehr@home:~/volatile/bugs/tmp351$ cat small.c static unsigned foo (unsigned ui1, unsigned ui2) { return ui1 - ui2; } static unsigned g_5[3][1][9] = { }; static short g_17; static short *g_80[4] = { &g_17, &g_17, &g_17, &g_17 }; static short **g_79[5] = { &g_80[1], &g_80[1], &g_80[1], &g_80[1], &g_80[1] }; static int g_132; static short ***volatile g = &g_79[1]; static unsigned g_566; static void func_1 (void) { lbl_777:*g; for (; g; g += 0) for (; g; g += 1) { for (;;) { } } lbl_802:if (g_566) goto lbl_777; for (g_132 = 0; g_132 >= 0; g_132 = foo (g_132, 1)) { if (g_5[+3][+1][+9] || **g) { for (; g; g += 1) { } } else goto lbl_802; } } int main (int argc, char *argv[]) { func_1 (); }