http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48305
Summary: ice at -O0: verify_gimple failed Product: gcc Version: 4.7.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/tmp006$ current-gcc -O0 -c small.c small.c: In function ‘func_18’: small.c:36:15: error: type mismatch in comparison expression unsigned int int unsigned int D.1991 = D.1979 == D.1990; small.c:36:15: internal compiler error: verify_gimple failed Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. regehr@home:~/volatile/bugs/tmp006$ current-gcc -v Using built-in specs. COLLECT_GCC=current-gcc COLLECT_LTO_WRAPPER=/mnt/z/z/compiler-install/gcc-r171573-install/libexec/gcc/i686-pc-linux-gnu/4.7.0/lto-wrapper Target: i686-pc-linux-gnu Configured with: ../configure --with-libelf=/usr/local --enable-lto --prefix=/mnt/z/z/compiler-install/gcc-r171573-install --program-prefix=r171573- --enable-languages=c,c++ Thread model: posix gcc version 4.7.0 20110327 (experimental) (GCC) regehr@home:~/volatile/bugs/tmp006$ cat small.c static signed char foo (signed char si1, unsigned char si2) { return si2 || si1 && si2 ? : si1 + si2; } static unsigned char bar (unsigned ui1, unsigned char ui2) { return ui1 + ui2; } static unsigned char baz (unsigned ui1, unsigned char ui2) { return ui2 ? : ui1 + ui2; } struct S0 { unsigned char f0; const unsigned char f2; unsigned char f3; }; struct S1 { const unsigned f7:54 > 1 * 8 ? : 0; }; struct S1 g_99[9][1][5] = { }; struct S0 g_244[10][3][1] = { }; unsigned char func_127 (const unsigned char); unsigned char func_18 (struct S0 p_19, unsigned char p_20) { unsigned char l_605[4]; p_20 |= baz (bar ((func_127 (0) ^ p_19.f3 > l_605[2] >= 0) == (1U ^ foo (p_19.f0, l_605[1]) & g_244[1][2][0].f2), g_244[1][2][0].f3), 1); return g_99[4][0][0].f7; }