http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47714
--- Comment #2 from Martin Jambor <jamborm at gcc dot gnu.org> 2011-02-13 00:59:04 UTC --- Backtrace always leads to SSA verification: (gdb) bt #0 verify_gimple_call (stmt=0x7ffff6970aa0) at /home/mjambor/gcc/trunk/src/gcc/tree-cfg.c:3137 #1 0x000000000095bcc7 in verify_stmts () at /home/mjambor/gcc/trunk/src/gcc/tree-cfg.c:4385 #2 0x0000000000a78fae in verify_ssa (check_modified_stmt=1 '\001') at /home/mjambor/gcc/trunk/src/gcc/tree-ssa.c:878 #3 0x000000000089c776 in execute_function_todo (data=<value optimized out>) at /home/mjambor/gcc/trunk/src/gcc/passes.c:1245 #4 0x000000000089c508 in execute_todo (flags=4294956000) at /home/mjambor/gcc/trunk/src/gcc/passes.c:1276 #5 0x000000000089d60a in execute_one_pass (pass=0x139a180) at /home/mjambor/gcc/trunk/src/gcc/passes.c:1584 #6 0x000000000089d885 in execute_pass_list (pass=0x139a180) at /home/mjambor/gcc/trunk/src/gcc/passes.c:1616 #7 0x000000000089d897 in execute_pass_list (pass=0x139b940) at /home/mjambor/gcc/trunk/src/gcc/passes.c:1617 #8 0x000000000099ff56 in tree_rest_of_compilation (fndecl=0x7ffff5fb2100) At -O2 the pass that is being verified is strip_predict_hints, at -O2 it is cplxlower0. In both cases the verified function looks like this: (gdb) call debug_function (current_function_decl, 0) const google_breakpad::MinidumpModule* google_breakpad::MinidumpModuleList::_ZTch0_h8_NK15google_breakpad18MinidumpModuleList19GetModuleForAddressEm(u_int64_t) const (const struct MinidumpModuleList * const this, u_int64_t address) { const struct MinidumpModule * adjusted_this.2; <bb 2>: retval.1_3 = *.LTHUNK0 (this_2(D), address); if (retval.1_3 != 0B) goto <bb 3> (<L0>); else goto <bb 5>; <bb 5>: adjusted_this.2_4 = 0B; goto <bb 4>; <L0>: adjusted_this.2_5 = retval.1_3 + 8; <bb 4>: # adjusted_this.2_1 = PHI <adjusted_this.2_5(3), adjusted_this.2_4(5)> return adjusted_this.2_1; }