This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Fix PR debug/33921, lost lexical blocks
- From: Daniel Jacobowitz <drow at false dot org>
- To: gcc-patches at gcc dot gnu dot org
- Cc: danglin at gcc dot gnu dot org
- Date: Sat, 27 Oct 2007 13:48:29 -0400
- Subject: Fix PR debug/33921, lost lexical blocks
The code in reemit_insn_block_notes chooses the innermost block to
assign to a SEQUENCE based on the locators of all the insns in the
sequence. It completely ignores the locator of the sequence itself.
So I think the easiest fix is to leave the locator on both the
SEQUENCE and the leading JUMP_INSN.
I can't readily bootstrap on any platform with delay slots. Dave,
would you rather I test this with a MIPS cross compiler or do it
yourself on hppa-linux?
--
Daniel Jacobowitz
CodeSourcery
2007-10-27 Daniel Jacobowitz <dan@codesourcery.com>
* reorg.c (emit_delay_sequence): Do not clear the locator on
the jump instruction.
Index: reorg.c
===================================================================
--- reorg.c (revision 129651)
+++ reorg.c (working copy)
@@ -513,7 +513,6 @@ emit_delay_sequence (rtx insn, rtx list,
PREV_INSN (delay_insn) = PREV_INSN (seq_insn);
INSN_LOCATOR (seq_insn) = INSN_LOCATOR (delay_insn);
- INSN_LOCATOR (delay_insn) = 0;
for (li = list; li; li = XEXP (li, 1), i++)
{