aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog3
-rw-r--r--gdb/mipsread.c7
2 files changed, 10 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 8b42909..1c5163d 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -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)
diff --git a/gdb/mipsread.c b/gdb/mipsread.c
index 60904ec..22f093c 100644
--- a/gdb/mipsread.c
+++ b/gdb/mipsread.c
@@ -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;