+2001-12-03 Zack Weinberg <zack@codesourcery.com>
+
+ * rs6000.h (RETURN_IN_MEMORY): Cast result of
+ int_size_in_bytes to unsigned HOST_WIDEST_INT so that -1 > 8.
+
Mon Dec 3 09:18:34 2001 Jeffrey A Law (law@cygnus.com)
* mn10200.md (negsf2): Use -0x8000 instead of 0x8000 for
controls this instead of DEFAULT_ABI; V.4 targets needing backward
compatibility can change DRAFT_V4_STRUCT_RET to override the
default, and -m switches get the final word. See
- rs6000_override_options for more details. */
-
+ rs6000_override_options for more details.
+
+ int_size_in_bytes returns -1 for variable size objects, which go in
+ memory always. The cast to unsigned makes -1 > 8. */
+
#define RETURN_IN_MEMORY(TYPE) \
(AGGREGATE_TYPE_P (TYPE) && \
- (TARGET_AIX_STRUCT_RET || int_size_in_bytes (TYPE) > 8))
+ (TARGET_AIX_STRUCT_RET || \
+ (unsigned HOST_WIDEST_INT) int_size_in_bytes (TYPE) > 8))
/* DRAFT_V4_STRUCT_RET defaults off. */
#define DRAFT_V4_STRUCT_RET 0