* stabsread.c (read_struct_fields): Accept either '$' or '.' as
authorJim Kingdon <jkingdon@engr.sgi.com>
Fri, 5 Nov 1993 04:49:06 +0000 (04:49 +0000)
committerJim Kingdon <jkingdon@engr.sgi.com>
Fri, 5 Nov 1993 04:49:06 +0000 (04:49 +0000)
the character which introduces a cpp_abbrev or anonymous type.

gdb/ChangeLog
gdb/stabsread.c

index 029db4f1ddea4b8dcb8d2b20e341739a7dce011a..a429a56816c341afee95f4304a22517933b720b9 100644 (file)
@@ -1,5 +1,8 @@
 Thu Nov  4 08:27:24 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)
 
+       * stabsread.c (read_struct_fields): Accept either '$' or '.' as
+       the character which introduces a cpp_abbrev or anonymous type.
+
        * c-lang.c (c_printstr): Print "" to stream (like all the other
        output from this function), not gdb_stdout.
 
index befb564479e1acc23849bff804a4d1f1448b5a75..ddb18c963a0de7364fc5b8193ae7e1712891753f 100644 (file)
@@ -2322,11 +2322,16 @@ read_struct_fields (fip, pp, type, objfile)
 
       /* Get the field name.  */
       p = *pp;
-      /* If is starts with CPLUS_MARKER it is a special abbreviation, unless
-        the CPLUS_MARKER is followed by an underscore, in which case it is
-        just the name of an anonymous type, which we should handle like any
-        other type name.  */
-      if (*p == CPLUS_MARKER && p[1] != '_')
+
+      /* If is starts with CPLUS_MARKER it is a special abbreviation,
+        unless the CPLUS_MARKER is followed by an underscore, in
+        which case it is just the name of an anonymous type, which we
+        should handle like any other type name.  We accept either '$'
+        or '.', because a field name can never contain one of these
+        characters except as a CPLUS_MARKER (we probably should be
+        doing that in most parts of GDB).  */
+
+      if ((*p == '$' || *p == '.') && p[1] != '_')
        {
          if (!read_cpp_abbrev (fip, pp, type, objfile))
            return 0;