* values.c (USE_STRUCT_RETURN): Only use gcc wierdness for gcc1.
authorJim Kingdon <jkingdon@engr.sgi.com>
Tue, 6 Apr 1993 21:20:30 +0000 (21:20 +0000)
committerJim Kingdon <jkingdon@engr.sgi.com>
Tue, 6 Apr 1993 21:20:30 +0000 (21:20 +0000)
gdb/ChangeLog
gdb/values.c

index 243cee83a085500c0e5d0ccca1f40e0d981a754c..88cf44040201e8ee0db3cad6140c5a8892055f7c 100644 (file)
@@ -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.
 
index 12f8ce9aff059473f8f7c8a791936ad525cac366..58c19bfc19b13df507b71d9cdf3c43bee2121fd5 100644 (file)
@@ -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