summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Kingdon <jkingdon@engr.sgi.com>1993-11-12 22:30:05 +0000
committerJim Kingdon <jkingdon@engr.sgi.com>1993-11-12 22:30:05 +0000
commit9d271503e81a1d0c4c3514ae3a7dbd57c27bafbd (patch)
treee75d40c15b7531d06093cd62f1cc26eccf2f1f0a
parent397f9dcdb9bfa0c23ba8f3ffdbf3336274e39dae (diff)
downloadbinutils-gdb-9d271503e81a1d0c4c3514ae3a7dbd57c27bafbd.tar.gz
* partial-stab.h: Ignore ':' symbol descriptors. Same case as
Kung's stabsread.c change.
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/partial-stab.h24
2 files changed, 24 insertions, 5 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index e3057735b35..9c61ca24916 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+Fri Nov 12 16:22:39 1993 Jim Kingdon (kingdon@lioth.cygnus.com)
+
+ * partial-stab.h: Ignore ':' symbol descriptors. Same case as
+ Kung's stabsread.c change.
+
Fri Nov 12 11:18:02 1993 Kung Hsu (kung@cirdan.cygnus.com)
* stabsread.c (patch_block_stabs, define_symbol, read_type): in
diff --git a/gdb/partial-stab.h b/gdb/partial-stab.h
index bfefbcc665c..30942351b68 100644
--- a/gdb/partial-stab.h
+++ b/gdb/partial-stab.h
@@ -551,14 +551,28 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
case '9':
continue;
- default:
- /* Unexpected symbol. Ignore it; perhaps it is an extension
- that we don't know about.
-
- Someone says sun cc puts out symbols like
+ case ':':
+ /* It is a C++ nested symbol. We don't need to record it
+ (I don't think); if we try to look up foo::bar::baz,
+ then symbols for the symtab containing foo should get
+ read in, I think. */
+ /* Someone says sun cc puts out symbols like
/foo/baz/maclib::/usr/local/bin/maclib,
which would get here with a symbol type of ':'. */
+ continue;
+
+ default:
+ /* Unexpected symbol descriptor. The second and subsequent stabs
+ of a continued stab can show up here. The question is
+ whether they ever can mimic a normal stab--it would be
+ nice if not, since we certainly don't want to spend the
+ time searching to the end of every string looking for
+ a backslash. */
+
complain (&unknown_symchar_complaint, p[1]);
+
+ /* Ignore it; perhaps it is an extension that we don't
+ know about. */
continue;
}