Bootstrapping with BOOT_CFLAGS="-Os -g" fails when the stage2 cc1 is used to build crtstuff.o. The segmentation fault occurs in find_uses_to_rename_use but the error really seems to be in its caller find_uses_to_rename_bb (tree-ssa-loop-manip.c). Looking at the tree dumps we have in t49.loopinit
<L8>:; stmt_35 = bsi_stmt (bsi); get_stmt_operands (stmt_35); var_38 = op_iter_init_tree (&iter, stmt_35, 13); goto <bb 9> (<L10>); <L9>:; var_45 = op_iter_next_tree (&iter); <L10>:; D.17355_41 = iter.done; D.17353_42 = (int) D.17355_41; D.17347_44 = (unsigned char) D.17353_42; if (D.17347_44 == 0) goto <L9>; else goto <L12>; but in t50.lim we have: <L8>:; stmt_35 = bsi_stmt (bsi); get_stmt_operands (stmt_35); var_38 = op_iter_init_tree (&iter, stmt_35, 13); lsm_tmp.500_356 = iter.done; goto <bb 9> (<L10>); <L9>:; var_45 = op_iter_next_tree (&iter); <L10>:; D.17355_41 = lsm_tmp.500_356; D.17353_42 = (int) D.17355_41; D.17347_44 = (unsigned char) D.17353_42; if (D.17347_44 == 0) goto <L9>; else goto <L18>; <L18>:; iter.done = lsm_tmp.500_356; note that the use of iter.done has been hoisted out of the loop even though the call of op_iter_next_tree passes the address of iter. -- Summary: [4.1 Regression] Bootstrap failure at -Os Product: gcc Version: 4.1.0 Status: UNCONFIRMED Keywords: wrong-code Severity: normal Priority: P2 Component: tree-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: rearnsha at gcc dot gnu dot org CC: gcc-bugs at gcc dot gnu dot org GCC host triplet: i386-unknown-netbsdelf arm-unknown-netbsdelf GCC target triplet: i386-unknown-netbsdelf arm-unknown-netbsdelf http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20543