* emit-rtl.c (adjust_address): Make a copy of the memory address.
authorRichard Henderson <rth@redhat.com>
Sun, 29 Jul 2001 01:35:13 +0000 (18:35 -0700)
committerRichard Henderson <rth@gcc.gnu.org>
Sun, 29 Jul 2001 01:35:13 +0000 (18:35 -0700)
From-SVN: r44442

gcc/ChangeLog
gcc/emit-rtl.c

index 42d3f44744f0a635a55de27c24b8ec679c9ee56b..085ae8bf5635d3e133ebbb3933c4ca439debdce3 100644 (file)
@@ -1,3 +1,7 @@
+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.
index 5c021772a347d5d6b8cc231da35eb01883cc6f47..46243cd0c23e9dfe8f32e97000aa4a1f97bc76b8 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