summaryrefslogtreecommitdiffstats
path: root/gcc/unroll.c
diff options
context:
space:
mode:
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>1999-07-07 00:41:18 +0000
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>1999-07-07 00:41:18 +0000
commit45ae827369be3d837fab8f9709bd9545fb56dde0 (patch)
tree9e89c35c3956088532fa545bd8fdeca3e2c5e015 /gcc/unroll.c
parent2dd6bda3a06417e6bec7b5c6c92558154f90e9d8 (diff)
downloadppe42-gcc-45ae827369be3d837fab8f9709bd9545fb56dde0.tar.gz
ppe42-gcc-45ae827369be3d837fab8f9709bd9545fb56dde0.zip
8
* unroll.c (unroll_loop): Don't delete NOTE_INSN_DELETED_LABEL notes. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@27984 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/unroll.c')
-rw-r--r--gcc/unroll.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/gcc/unroll.c b/gcc/unroll.c
index 7e584c961d0..9ac883a1d49 100644
--- a/gcc/unroll.c
+++ b/gcc/unroll.c
@@ -1262,7 +1262,13 @@ unroll_loop (loop_end, insn_count, loop_start, end_insert_before,
insn = NEXT_INSN (copy_start);
while (insn != safety_label)
{
- if (insn != start_label)
+ /* ??? We can't delete a NOTE_INSN_DELETED_LABEL unless we fix the
+ DECL_RTL field of the associated LABEL_DECL to point to (one of)
+ the new copies of the label. Otherwise, we hit an abort in
+ dwarfout.c/dwarf2out.c. */
+ if (insn != start_label
+ && ! (GET_CODE (insn) == NOTE
+ && NOTE_LINE_NUMBER (insn) == NOTE_INSN_DELETED_LABEL))
insn = delete_insn (insn);
else
insn = NEXT_INSN (insn);
OpenPOWER on IntegriCloud