* mipsread.c (cross_ref): Set the name to unknown for "struct *" case.
authorJim Kingdon <jkingdon@engr.sgi.com>
Fri, 9 Jul 1993 18:40:26 +0000 (18:40 +0000)
committerJim Kingdon <jkingdon@engr.sgi.com>
Fri, 9 Jul 1993 18:40:26 +0000 (18:40 +0000)
Patch from ptf@delcam.co.uk (Paul Flinders).

gdb/ChangeLog
gdb/mipsread.c

index 8b42909f99b66a94045ca9b503e06244c1cc2c7c..1c5163da434712ea7c8811c1d44729e7d24c39a2 100644 (file)
@@ -1,5 +1,8 @@
 Fri Jul  9 12:36:46 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)
 
+       * mipsread.c (cross_ref): Set the name to unknown for "struct *" case.
+       Patch from ptf@delcam.co.uk (Paul Flinders).
+
        * a29k-tdep.c, findvar.c (get_saved_register): Fix byteswapping sins.
 
 Fri Jul  9 09:47:02 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)
index 60904ecabcb8f55895225e11401d782307c10ea8..22f093c5ad04bafdd08d4be874f85780cfa38d97 100644 (file)
@@ -2753,6 +2753,13 @@ cross_ref (ax, tpp, type_code, pname, bigend)
       /* Careful, we might be looking at .o files */
       if (sh.iss == 0)
        *pname = "<undefined>";
+      else if (rn->rfd == 0xfff && rn->index == 0)
+       /* For structs, unions and enums, rn->rfd is 0xfff and the index
+          is a relative symbol number for the type, but an index of 0
+          seems to mean that we don't know.  This is said to fix a problem
+          with "info func opendir" on an SGI showing
+          "struct BSDopendir.c *BSDopendir();".  */
+       *pname = "<unknown>";
       else
        *pname = ecoff_data (cur_bfd)->ss + fh->issBase + sh.iss;