diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/emit-rtl.c | 10 |
2 files changed, 10 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b728b00..4c52d7f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2006-12-30 Jan Hubicka <jh@suse.cz> + Vladimir Yanovsky <volodyan@gmail.com> + + * emit-rt.c (emit_copy_of_insn_after): Fix bug causing exponential + amount of copies of INSN_NOTEs list. + 2006-12-29 Jan Hubicka <jh@suse.cz> * cgraph.c (cgraph_exapnd_queue): Rename to... diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c index e63e138..517c1a3 100644 --- a/gcc/emit-rtl.c +++ b/gcc/emit-rtl.c @@ -5297,14 +5297,12 @@ emit_copy_of_insn_after (rtx insn, rtx after) { if (GET_CODE (link) == EXPR_LIST) REG_NOTES (new) - = copy_insn_1 (gen_rtx_EXPR_LIST (REG_NOTE_KIND (link), - XEXP (link, 0), - REG_NOTES (new))); + = gen_rtx_EXPR_LIST (REG_NOTE_KIND (link), + copy_insn_1 (XEXP (link, 0)), REG_NOTES (new)); else REG_NOTES (new) - = copy_insn_1 (gen_rtx_INSN_LIST (REG_NOTE_KIND (link), - XEXP (link, 0), - REG_NOTES (new))); + = gen_rtx_INSN_LIST (REG_NOTE_KIND (link), + copy_insn_1 (XEXP (link, 0)), REG_NOTES (new)); } /* Fix the libcall sequences. */ |