OSDN Git Service

(instantiate_decl): Always store addr back into x.
authorwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 25 Sep 1996 19:31:31 +0000 (19:31 +0000)
committerwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 25 Sep 1996 19:31:31 +0000 (19:31 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@12842 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/function.c

index 0591a8b..b34f48d 100644 (file)
@@ -2684,28 +2684,28 @@ instantiate_decl (x, size, valid_only)
 
   instantiate_virtual_regs_1 (&addr, NULL_RTX, 0);
 
-  if (! valid_only)
-    return;
-
-  /* Now verify that the resulting address is valid for every integer or
-     floating-point mode up to and including SIZE bytes long.  We do this
-     since the object might be accessed in any mode and frame addresses
-     are shared.  */
-
-  for (mode = GET_CLASS_NARROWEST_MODE (MODE_INT);
-       mode != VOIDmode && GET_MODE_SIZE (mode) <= size;
-       mode = GET_MODE_WIDER_MODE (mode))
-    if (! memory_address_p (mode, addr))
-      return;
+  if (valid_only)
+    {
+      /* Now verify that the resulting address is valid for every integer or
+        floating-point mode up to and including SIZE bytes long.  We do this
+        since the object might be accessed in any mode and frame addresses
+        are shared.  */
+
+      for (mode = GET_CLASS_NARROWEST_MODE (MODE_INT);
+          mode != VOIDmode && GET_MODE_SIZE (mode) <= size;
+          mode = GET_MODE_WIDER_MODE (mode))
+       if (! memory_address_p (mode, addr))
+         return;
 
-  for (mode = GET_CLASS_NARROWEST_MODE (MODE_FLOAT);
-       mode != VOIDmode && GET_MODE_SIZE (mode) <= size;
-       mode = GET_MODE_WIDER_MODE (mode))
-    if (! memory_address_p (mode, addr))
-      return;
+      for (mode = GET_CLASS_NARROWEST_MODE (MODE_FLOAT);
+          mode != VOIDmode && GET_MODE_SIZE (mode) <= size;
+          mode = GET_MODE_WIDER_MODE (mode))
+       if (! memory_address_p (mode, addr))
+         return;
+    }
 
-  /* Otherwise, put back the address, now that we have updated it and we
-     know it is valid.  */
+  /* Put back the address now that we have updated it and we either know
+     it is valid or we don't care whether it is valid.  */
 
   XEXP (x, 0) = addr;
 }