http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54980
Bug #: 54980 Summary: [4.8 regression] gimple check: expected gimple_cond(error_mark), have gimple_call() in gimple_cond_set_lhs, at gimple.h:2578 Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: lto AssignedTo: unassig...@gcc.gnu.org ReportedBy: dim...@gmail.com $ g++ -v Using built-in specs. COLLECT_GCC=g++ COLLECT_LTO_WRAPPER=/usr/local/gcc_current/libexec/gcc/x86_64-unknown-linux-gnu/4.8.0/lto-wrapper Target: x86_64-unknown-linux-gnu Configured with: /home/dimhen/src/gcc-current/configure --prefix=/usr/local/gcc_current --enable-__cxa_atexit --enable-shared --enable-checking=yes,df,fold,rtl,tree --enable-gnu-unique-object --enable-linker-build-id --enable-languages=c,c++,lto --enable-plugin --enable-version-specific-runtime-libs --with-tune=generic Thread model: posix gcc version 4.8.0 20121018 (experimental) [trunk revision 192560] (GCC) $ g++ -flto -fpreprocessed -c 1.ii -o 1.o $ g++ -flto -O1 -fpreprocessed -c 2.ii -o 2.o $ g++ -Ofast -flto -o t 1.o 2.o In file included from :0:0: 1.ii: In member function ‘parse’: 1.ii:8:17: internal compiler error: gimple check: expected gimple_cond(error_mark), have gimple_call() in gimple_cond_set_lhs, at gimple.h:2578 virtual int parse () ^ 0x6af233 gimple_check_failed(gimple_statement_d const*, char const*, int, char const*, gimple_code, tree_code) /home/dimhen/src/gcc-current/gcc/gimple.c:1160 0x104ec27 gimple_cond_set_lhs /home/dimhen/src/gcc-current/gcc/gimple.h:2578 0x104e309 gimple_cond_set_lhs /home/dimhen/src/gcc-current/gcc/tree-ssa-loop-ivcanon.c:533 0x104e309 gimple_cond_make_true /home/dimhen/src/gcc-current/gcc/gimple.h:2674 0x104e309 try_unroll_loop_completely /home/dimhen/src/gcc-current/gcc/tree-ssa-loop-ivcanon.c:548 0x104e309 canonicalize_loop_induction_variables /home/dimhen/src/gcc-current/gcc/tree-ssa-loop-ivcanon.c:666 0x104e737 tree_unroll_loops_completely(bool, bool) /home/dimhen/src/gcc-current/gcc/tree-ssa-loop-ivcanon.c:815 0x98ee31 tree_complete_unroll_inner /home/dimhen/src/gcc-current/gcc/tree-ssa-loop.c:495 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <http://gcc.gnu.org/bugs.html> for instructions. lto-wrapper: g++ returned 1 exit status /usr/bin/ld: fatal error: lto-wrapper failed collect2: error: ld returned 1 exit status $ cat 1.ii extern "C" class A { }; template < class T_gengetopt_args_info, int (*t_parser) (int, char **, T_gengetopt_args_info *) >class B { virtual int parse () { A a; t_parser (0, 0, 0); } }; extern "C" int f (int, char **, int *); class C:B < int, f > { }; void selectCommandHandler () { new C; } $ cat 2.ii extern "C" { void printf (const char *...); int f (); } const char *a[] = { "", 0 }; int b; void f_internal (); int f () { f_internal (); } void f_internal () { while (1) switch (b) case 'h': { int i; while (a[0]) printf (a[i++]); } }