reg...@gamow tmp414]$ current-gcc -v Using built-in specs. COLLECT_GCC=current-gcc COLLECT_LTO_WRAPPER=/uusoc/exports/scratch/regehr/z/compiler-install/gcc-r160490-install/bin/../libexec/gcc/x86_64-unknown-linux-gnu/4.6.0/lto-wrapper Target: x86_64-unknown-linux-gnu Configured with: ../configure --with-libelf=/usr/local --enable-lto --prefix=/home/regehr/z/compiler-install/gcc-r160490-install --program-prefix=r160490- --enable-languages=c,c++ Thread model: posix gcc version 4.6.0 20100609 (experimental) (GCC)
[reg...@gamow tmp414]$ current-gcc -c -O small.c small.c: In function 'func_21': small.c:42:22: warning: assignment makes integer from pointer without a cast [enabled by default] unhandled expression in get_expr_operands(): <error_mark 0x7fa3684399f0> small.c: In function 'int324': small.c:21:6: internal compiler error: in get_expr_operands, at tree-ssa-operands.c:1020 Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. [reg...@gamow tmp414]$ cat small.c static int foo (int si1, int si2) { return si1 > 0 && si2 > 0 && si1 > -si2 || si1 < 0 && si2 < 0 && si1 < -si2 ? : si1 + si2; } struct S0 { unsigned short f1; }; int g_4; struct S0 g_54 = { 3428 }; int func_21 (int * p_22, int * const int32p_24, unsigned p_25, const int * p_26); void int324 (unsigned p_15, int * p_16, int * p_17, int * p_18) { if (foo (g_4, func_21 (p_18, &g_4, 0, 0))) { for (g_54.f1; g_54.f1; g_54.f1 += 1) { } } } int func_21 (int * p_22, int * const int32p_24, unsigned p_25, const int * p_26) { for (0; 1; p_25 += 1) lbl_29:if (p_25) goto lbl_28; lbl_28:for (p_25 = 0; p_25 < 9; p_25 += 1) if (p_25) goto lbl_29; unsigned short l_53; for (0; l_53; l_53 = foo) { } return 0; } -- Summary: ICE in get_expr_operands, at tree-ssa-operands.c:1020 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: x86_64-unknown-linux-gnu GCC host triplet: x86_64-unknown-linux-gnu GCC target triplet: x86_64-unknown-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44485