OSDN Git Service

(expand_call) [PCC_STATIC_STRUCT_RETURN]:
authorrms <rms@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 4 Apr 1993 21:28:09 +0000 (21:28 +0000)
committerrms <rms@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 4 Apr 1993 21:28:09 +0000 (21:28 +0000)
Always set pcc_struct_value if aggregate_value_p returns 1.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@4007 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/calls.c

index 14b2000..b2b52b1 100644 (file)
@@ -600,34 +600,33 @@ expand_call (exp, target, ignore)
       is_const = 0;
 
 #ifdef PCC_STATIC_STRUCT_RETURN
-      if (flag_pcc_struct_return)
-       {
-         pcc_struct_value = 1;
-         is_integrable = 0;  /* Easier than making that case work right.  */
-       }
-      else
-#endif
-       {
-         struct_value_size = int_size_in_bytes (TREE_TYPE (exp));
+      {
+       pcc_struct_value = 1;
+       is_integrable = 0;  /* Easier than making that case work right.  */
+      }
+#else /* not PCC_STATIC_STRUCT_RETURN */
+      {
+       struct_value_size = int_size_in_bytes (TREE_TYPE (exp));
 
-         if (struct_value_size < 0)
-           abort ();
+       if (struct_value_size < 0)
+         abort ();
 
-         if (target && GET_CODE (target) == MEM)
-           structure_value_addr = XEXP (target, 0);
-         else
-           {
-             /* Assign a temporary on the stack to hold the value.  */
+       if (target && GET_CODE (target) == MEM)
+         structure_value_addr = XEXP (target, 0);
+       else
+         {
+           /* Assign a temporary on the stack to hold the value.  */
 
-             /* For variable-sized objects, we must be called with a target
-                specified.  If we were to allocate space on the stack here,
-                we would have no way of knowing when to free it.  */
+           /* For variable-sized objects, we must be called with a target
+              specified.  If we were to allocate space on the stack here,
+              we would have no way of knowing when to free it.  */
 
-             structure_value_addr
-               = XEXP (assign_stack_temp (BLKmode, struct_value_size, 1), 0);
-             target = 0;
-           }
-       }
+           structure_value_addr
+             = XEXP (assign_stack_temp (BLKmode, struct_value_size, 1), 0);
+           target = 0;
+         }
+      }
+#endif /* not PCC_STATIC_STRUCT_RETURN */
     }
 
   /* If called function is inline, try to integrate it.  */