* emit-rtl.c (adjust_address): Make a copy of the memory address.
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 29 Jul 2001 01:35:13 +0000 (01:35 +0000)
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 29 Jul 2001 01:35:13 +0000 (01:35 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@44442 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/emit-rtl.c

index 42d3f44..085ae8b 100644 (file)
@@ -1,5 +1,9 @@
 2001-07-28  Richard Henderson  <rth@redhat.com>
 
+       * emit-rtl.c (adjust_address): Make a copy of the memory address.
+
+2001-07-28  Richard Henderson  <rth@redhat.com>
+
        * flow.c (add_to_mem_set_list): New function.
        (init_propagate_block_info): Use it.
        (mark_set_1): Likewise.
index 5c02177..46243cd 100644 (file)
@@ -1636,6 +1636,9 @@ adjust_address (memref, mode, offset)
      will do memref tracking.  */
   rtx addr = XEXP (memref, 0);
 
+  /* ??? Prefer to create garbage instead of creating shared rtl.  */
+  addr = copy_rtx (addr);
+
   /* If MEMREF is a LO_SUM and the offset is within the alignment of the
      object, we can merge it into the LO_SUM.  */
   if (GET_MODE (memref) != BLKmode && GET_CODE (addr) == LO_SUM