[backport r162881 to 4.6-20100731, fixes PR rtl-optimization/45162 ] gcc/ 2010-08-04 Bernd Schmidt PR rtl-optimization/45162 * df-problems.c (df_word_lr_bb_local_compute): Ignore DEBUG_INSNs. * dce.c (word_dce_process_block): Likewise. --- gcc-4.6-20100731/gcc/dce.c.~1~ 2010-07-30 01:48:24.000000000 +0200 +++ gcc-4.6-20100731/gcc/dce.c 2010-08-07 14:52:40.000000000 +0200 @@ -795,7 +795,7 @@ word_dce_process_block (basic_block bb, bitmap_copy (local_live, DF_WORD_LR_OUT (bb)); FOR_BB_INSNS_REVERSE (bb, insn) - if (INSN_P (insn)) + if (NONDEBUG_INSN_P (insn)) { bool any_changed; /* No matter if the instruction is needed or not, we remove --- gcc-4.6-20100731/gcc/df-problems.c.~1~ 2010-07-29 14:39:57.000000000 +0200 +++ gcc-4.6-20100731/gcc/df-problems.c 2010-08-07 14:52:44.000000000 +0200 @@ -2472,7 +2472,7 @@ df_word_lr_bb_local_compute (unsigned in { unsigned int uid = INSN_UID (insn); - if (!INSN_P (insn)) + if (!NONDEBUG_INSN_P (insn)) continue; for (def_rec = DF_INSN_UID_DEFS (uid); *def_rec; def_rec++) {