Seen on Ubuntu 9.10. regehr@john-home:~/volatile/bugs/tmp253$ current-gcc -O2 small.c small.c: In function ‘bar’: small.c:16:1: error: definition in block 7 does not dominate use in block 2 for SSA_NAME: l_23_17 in statement: l_23_2 = PHI PHI argument l_23_17 for PHI node l_23_2 = PHI small.c:16:1: internal compiler error: verify_ssa failed Please submit a full bug report, with preprocessed source if appropriate. See for instructions. regehr@john-home:~/volatile/bugs/tmp253$ current-gcc -v Using built-in specs. COLLECT_GCC=current-gcc COLLECT_LTO_WRAPPER=/home/regehr/z/tmp/gcc-r155838-install/libexec/gcc/i686-pc-linux-gnu/4.5.0/lto-wrapper Target: i686-pc-linux-gnu Configured with: ../configure --with-libelf=/usr/local --enable-lto --prefix=/home/regehr/z/tmp/gcc-r155838-install --program-prefix=r155838- --enable-languages=c,c++ Thread model: posix gcc version 4.5.0 20100112 (experimental) (GCC) regehr@john-home:~/volatile/bugs/tmp253$ cat small.c static signed char foo (signed char si1, unsigned char si2) { return (si1 ^ si2) & (-si2 ^ si2) ? : si1 - si2; } struct S0 { }; unsigned char g_21; struct S0 g_34; void bar (unsigned char p_20) { unsigned char *l_22 = &g_21; unsigned char l_23 = 0; struct S0 *l = &g_34; goto lbl_42; for (; l_23; l_23 = foo (l_23, 1)) { for (p_20 = 0; 0; p_20 = foo (p_20, 1)) lbl_42:; (l == &g_34) ? 0 : ""; lbl_85:*l_22 = p_20; } goto lbl_85; } -- Summary: ice: verify_ssa failed Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: regehr at cs dot utah dot edu GCC build triplet: i686-pc-linux-gnu GCC host triplet: i686-pc-linux-gnu GCC target triplet: i686-pc-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42717