From 5eeedd4d9e8e8c73c2263f1442d89f357ec6ff73 Mon Sep 17 00:00:00 2001 From: Jim Wilson Date: Fri, 20 Jan 1995 17:30:34 -0800 Subject: [PATCH] (scan_loop): For the replace_rtx call, copy the rtx that is being substituted in before the call. From-SVN: r8779 --- gcc/loop.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gcc/loop.c b/gcc/loop.c index bb48a9ef1c4..e267652bd50 100644 --- a/gcc/loop.c +++ b/gcc/loop.c @@ -746,10 +746,12 @@ scan_loop (loop_start, end, nregs) && validate_replace_rtx (SET_DEST (set), SET_SRC (set), reg_single_usage[regno])) { - /* Replace any usage in a REG_EQUAL note. */ + /* Replace any usage in a REG_EQUAL note. Must copy the + new source, so that we don't get rtx sharing between the + SET_SOURCE and REG_NOTES of insn p. */ REG_NOTES (reg_single_usage[regno]) = replace_rtx (REG_NOTES (reg_single_usage[regno]), - SET_DEST (set), SET_SRC (set)); + SET_DEST (set), copy_rtx (SET_SRC (set))); PUT_CODE (p, NOTE); NOTE_LINE_NUMBER (p) = NOTE_INSN_DELETED; -- 2.30.2