From 279a3cfdfb22f0fd4470ecfb6a7bde4ce32f5b50 Mon Sep 17 00:00:00 2001 From: Kung Hsu Date: Tue, 28 Dec 1993 02:46:34 +0000 Subject: [PATCH] Modified Files: ChangeLog stabsread.c * stabsread.c (read_type): fix problem when reading static member of a class. caused by change to allow :: inside template instantiated name. --- gdb/ChangeLog | 6 ++++++ gdb/stabsread.c | 8 ++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index f5227aa..2c6d9ce 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +Mon Dec 27 18:42:14 1993 Kung Hsu (kung@cirdan.cygnus.com) + + * stabsread.c (read_type): fix problem when reading static member + of a class. caused by change to allow :: inside template + instantiated name. + Mon Dec 27 11:07:05 1993 Jim Kingdon (kingdon@lioth.cygnus.com) * gdbtypes.h: Expand on comments for TYPE_CODE_BITSTRING and diff --git a/gdb/stabsread.c b/gdb/stabsread.c index 4b97a60..4cd13f9 100644 --- a/gdb/stabsread.c +++ b/gdb/stabsread.c @@ -1315,7 +1315,7 @@ read_type (pp, objfile) char *type_name; { - char *from, *to, *p; + char *from, *to, *p, *q1, *q2; /* Set the type code according to the following letter. */ switch ((*pp)[0]) @@ -1341,11 +1341,15 @@ read_type (pp, objfile) } } + q1 = strchr(*pp, '<'); p = strchr(*pp, ':'); if (p == NULL) return error_type (pp); - while (p[1] == ':') + while (q1 && p > q1 && p[1] == ':') { + q2 = strchr(q1, '>'); + if (!q2 || q2 < p) + break; p += 2; p = strchr(p, ':'); if (p == NULL) -- 2.7.4