From 9925b9286107fabdb193a9ba47f330d6944195b4 Mon Sep 17 00:00:00 2001 From: Jim Kingdon Date: Tue, 6 Apr 1993 21:20:30 +0000 Subject: * values.c (USE_STRUCT_RETURN): Only use gcc wierdness for gcc1. --- gdb/values.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) (limited to 'gdb/values.c') diff --git a/gdb/values.c b/gdb/values.c index 12f8ce9..58c19bf 100644 --- a/gdb/values.c +++ b/gdb/values.c @@ -1484,13 +1484,21 @@ value_being_returned (valtype, retbuf, struct_return) On most machines, the struct convention is used unless we are using gcc and the type is of a special size. */ +/* As of about 31 Mar 93, GCC was changed to be compatible with the + native compiler. GCC 2.3.3 was the last release that did it the + old way. Since gcc2_compiled was not changed, we have no + way to correctly win in all cases, so we just do the right thing + for gcc1 and for gcc2 after this change. Thus it loses for gcc + 2.0-2.3.3. This is somewhat unfortunate, but changing gcc2_compiled + would cause more chaos than dealing with some struct returns being + handled wrong. */ #if !defined (USE_STRUCT_CONVENTION) #define USE_STRUCT_CONVENTION(gcc_p, type)\ - (!((gcc_p) && (TYPE_LENGTH (value_type) == 1 \ - || TYPE_LENGTH (value_type) == 2 \ - || TYPE_LENGTH (value_type) == 4 \ - || TYPE_LENGTH (value_type) == 8 \ - ) \ + (!((gcc_p == 1) && (TYPE_LENGTH (value_type) == 1 \ + || TYPE_LENGTH (value_type) == 2 \ + || TYPE_LENGTH (value_type) == 4 \ + || TYPE_LENGTH (value_type) == 8 \ + ) \ )) #endif -- cgit v1.1