diff options
author | John Gilmore <gnu@cygnus> | 1992-09-10 00:07:06 +0000 |
---|---|---|
committer | John Gilmore <gnu@cygnus> | 1992-09-10 00:07:06 +0000 |
commit | 2640f7e13856f4115d1f955b076f11272f5f3da0 (patch) | |
tree | 8a6bd711d3b3168db97ddf3036ff9ff34d0bffc6 /gdb/stabsread.c | |
parent | 5148923360989fb54088f499e4b4cefd14088f9a (diff) | |
download | gdb-2640f7e13856f4115d1f955b076f11272f5f3da0.zip gdb-2640f7e13856f4115d1f955b076f11272f5f3da0.tar.gz gdb-2640f7e13856f4115d1f955b076f11272f5f3da0.tar.bz2 |
Removed a large number of changes inserted by Per Bothner
for C++ support. These will go back in when they've been
examined.
Diffstat (limited to 'gdb/stabsread.c')
-rw-r--r-- | gdb/stabsread.c | 39 |
1 files changed, 17 insertions, 22 deletions
diff --git a/gdb/stabsread.c b/gdb/stabsread.c index 06b61ec..832d9c3 100644 --- a/gdb/stabsread.c +++ b/gdb/stabsread.c @@ -1158,8 +1158,7 @@ read_type (pp, objfile) case '#': /* Method (class & fn) type */ if ((*pp)[0] == '#') { - /* This "minimized" format bogus, because it doesn't yield - enough information. I've changed gcc to not emit it. --Per */ + /* We'll get the parameter types from the name. */ struct type *return_type; *pp += 1; @@ -1418,10 +1417,8 @@ read_struct_type (pp, type, objfile) p = *pp; if (*p == CPLUS_MARKER) { - if (*p == '_') /* GNU C++ anonymous type. */ - ; /* Special GNU C++ name. */ - else if (*++p == 'v') + if (*++p == 'v') { const char *prefix; char *name = 0; @@ -1460,12 +1457,15 @@ read_struct_type (pp, type, objfile) list->field.bitsize = 0; list->visibility = 0; /* private */ non_public_fields++; - - nfields++; - continue; } + /* GNU C++ anonymous type. */ + else if (*p == '_') + break; else complain (&invalid_cpp_abbrev_complaint, *pp); + + nfields++; + continue; } while (*p != ':') p++; @@ -1508,26 +1508,21 @@ read_struct_type (pp, type, objfile) if (**pp == ':') { p = ++(*pp); +#if 0 + /* Possible future hook for nested types. */ if (**pp == '!') - { /* C++ nested type -as in FOO::BAR */ - list->field.bitpos = (long)(-2); /* nested type */ + { + list->field.bitpos = (long)-2; /* nested type */ p = ++(*pp); - if (TYPE_NAME (list->field.type) == NULL && **pp == '\'') - { - for (p = ++(*pp); *p != '\''; ) p++; - TYPE_NAME (list->field.type) = savestring (*pp, p - *pp); - } - while (*p != ';') p++; - list->field.bitsize = 0; - *pp = p + 1; } else +#endif { /* Static class member. */ - list->field.bitpos = (long)(-1); - while (*p != ';') p++; - list->field.bitsize = (long) savestring (*pp, p - *pp); - *pp = p + 1; + list->field.bitpos = (long)-1; } + while (*p != ';') p++; + list->field.bitsize = (long) savestring (*pp, p - *pp); + *pp = p + 1; nfields++; continue; } |