This problem can be seen by compiling testsuite/gfortran.dg/g77/ndrm2.f. The label reference (after x87 stack compensation edge is inserted) is updated only in final jump insn, but other references to the same label are left untouched.
We enter stack pass with: (insn:TI 19 20 18 4 dnrm2.f:33 (set (reg/v/f:SI 1 dx [orig:73 next.2 ] [73]) (label_ref:SI 53)) 47 {*movsi_1} (expr_list:REG_EQUAL (label_ref:SI 53) (insn_list:REG_LABEL_OPERAND 53 (nil)))) ... (insn 23 137 17 4 dnrm2.f:40 (set (reg:CCZ 17 flags) (compare:CCZ (reg/v/f:SI 1 dx [orig:73 next.2 ] [73]) (label_ref:SI 53))) 5 {*cmpsi_1_insn} (insn_list:REG_LABEL_OPERAND 53 (nil))) ... (jump_insn 24 245 355 4 dnrm2.f:40 (set (pc) (if_then_else (eq (reg:CCZ 17 flags) (const_int 0 -- Summary: Label references are not updated after edge insertion Product: gcc Version: 4.4.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: rtl-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: ubizjak at gmail dot com GCC build triplet: i686-pc-linux-gnu GCC host triplet: i686-pc-linux-gnu GCC target triplet: i686-pc-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35605