From: Jim Kingdon Date: Tue, 6 Apr 1993 21:20:30 +0000 (+0000) Subject: * values.c (USE_STRUCT_RETURN): Only use gcc wierdness for gcc1. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=9925b9286107fabdb193a9ba47f330d6944195b4;p=binutils-gdb.git * values.c (USE_STRUCT_RETURN): Only use gcc wierdness for gcc1. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 243cee83a08..88cf4404020 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,7 @@ Tue Apr 6 09:54:29 1993 Jim Kingdon (kingdon@cygnus.com) + * values.c (USE_STRUCT_RETURN): Only use gcc wierdness for gcc1. + * xcoffread.c (read_xcoff_symtab): Deal correctly with symbols of exactly 8 characters. diff --git a/gdb/values.c b/gdb/values.c index 12f8ce9aff0..58c19bfc19b 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