Modified Files:
authorKung Hsu <kung@cygnus>
Tue, 28 Dec 1993 02:46:34 +0000 (02:46 +0000)
committerKung Hsu <kung@cygnus>
Tue, 28 Dec 1993 02:46:34 +0000 (02:46 +0000)
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
gdb/stabsread.c

index f5227aa9c1d1cbdf6607aeeeb844d89d96d6aa03..2c6d9ce48816ade20cef01cf41bf2000d0bbb7a9 100644 (file)
@@ -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
index 4b97a608fe30354ab7013d3561cad63ea4d959b2..4cd13f9e2f85238322f42fa77c89f0463f988b95 100644 (file)
@@ -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)