* config/ia64/ia64.c (ia64_return_in_memory): True for variable
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 21 Aug 2001 08:50:36 +0000 (08:50 +0000)
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 21 Aug 2001 08:50:36 +0000 (08:50 +0000)
        sized types.

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

gcc/ChangeLog
gcc/config/ia64/ia64.c

index 8f71505..175f627 100644 (file)
@@ -1,3 +1,8 @@
+2001-08-21  Richard Henderson  <rth@redhat.com>
+
+       * config/ia64/ia64.c (ia64_return_in_memory): True for variable
+       sized types.
+
 2001-08-21  Neil Booth  <neil@daikokuya.demon.co.uk>
 
        * cpphash.h (_cpp_push_next_buffer): New.
index ec082fc..2c539fe 100644 (file)
@@ -3206,11 +3206,16 @@ ia64_return_in_memory (valtype)
 {
   enum machine_mode mode;
   enum machine_mode hfa_mode;
-  int byte_size;
+  HOST_WIDE_INT byte_size;
 
   mode = TYPE_MODE (valtype);
-  byte_size = ((mode == BLKmode)
-              ? int_size_in_bytes (valtype) : GET_MODE_SIZE (mode));
+  byte_size = GET_MODE_SIZE (mode);
+  if (mode == BLKmode)
+    {
+      byte_size = int_size_in_bytes (valtype);
+      if (byte_size < 0)
+       return 1;
+    }
 
   /* Hfa's with up to 8 elements are returned in the FP argument registers.  */
 
@@ -3224,7 +3229,6 @@ ia64_return_in_memory (valtype)
       else
        return 0;
     }
-
   else if (byte_size > UNITS_PER_WORD * MAX_INT_RETURN_SLOTS)
     return 1;
   else