aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJohn David Anglin <dave@hiauly1.hia.nrc.ca>2001-08-17 20:55:50 +0000
committerJohn David Anglin <danglin@gcc.gnu.org>2001-08-17 20:55:50 +0000
commit0779eeb2815ca0a74eed65f8f558123e5e953a81 (patch)
tree7b6e4dbf002cf987823e29b71b8bade74c25da9e /gcc
parent2f78c311762ab66530c1e0a09ff4fe32a8406023 (diff)
downloadgcc-0779eeb2815ca0a74eed65f8f558123e5e953a81.zip
gcc-0779eeb2815ca0a74eed65f8f558123e5e953a81.tar.gz
gcc-0779eeb2815ca0a74eed65f8f558123e5e953a81.tar.bz2
pa.h (RETURN_IN_MEMORY): Return types with a size that is varable or larger than an integer in memory.
* pa.h (RETURN_IN_MEMORY): Return types with a size that is varable or larger than an integer in memory. From-SVN: r44981
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/pa/pa.h6
2 files changed, 9 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 16296da..cf3ba5e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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,
diff --git a/gcc/config/pa/pa.h b/gcc/config/pa/pa.h
index 8358e889..fcceaa1 100644
--- a/gcc/config/pa/pa.h
+++ b/gcc/config/pa/pa.h
@@ -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. */