pa.h (RETURN_IN_MEMORY): Return types with a size that is varable or larger than...
authorJohn David Anglin <dave@hiauly1.hia.nrc.ca>
Fri, 17 Aug 2001 20:55:50 +0000 (20:55 +0000)
committerJohn David Anglin <danglin@gcc.gnu.org>
Fri, 17 Aug 2001 20:55:50 +0000 (20:55 +0000)
* pa.h (RETURN_IN_MEMORY): Return types with a size that is varable
or larger than an integer in memory.

From-SVN: r44981

gcc/ChangeLog
gcc/config/pa/pa.h

index 16296da74cddfb7f6de2478e0104257ff18b57f1..cf3ba5e7453afe97c8abf2e92b179e4321fee79a 100644 (file)
@@ -1,3 +1,8 @@
+2001-08-17  John David Anglin  <dave@hiauly1.hia.nrc.ca>
+
+       * pa.h (RETURN_IN_MEMORY): Return types with a size that is varable
+       or larger than an integer in memory.
+
 2001-08-17  Zack Weinberg  <zackw@panix.com>
 
        * system.h: Forward-declare struct rtx_def, struct rtvec_def,
index 8358e8894687b1fa926262578776c6d7dcf60c12..fcceaa13a7229f22543c940f12bd373598b30e7c 100644 (file)
@@ -518,9 +518,11 @@ extern struct rtx_def *hppa_pic_save_rtx PARAMS ((void));
 #define DEFAULT_PCC_STRUCT_RETURN 0
 
 /* SOM ABI says that objects larger than 64 bits are returned in memory.
-   PA64 ABI says that objects larger than 128 bits are returned in memory. */
+   PA64 ABI says that objects larger than 128 bits are returned in memory.
+   Note that int_size_in_bytes can return -1 if the size is variable
+   or larger than an integer.  */
 #define RETURN_IN_MEMORY(TYPE) \
-  (TARGET_64BIT ? int_size_in_bytes (TYPE) > 16 : int_size_in_bytes (TYPE) > 8)
+  ((unsigned HOST_WIDE_INT) int_size_in_bytes (TYPE) > (TARGET_64BIT ? 16 : 8))
 
 /* Register in which address to store a structure value
    is passed to a function.  */