diff options
author | Jim Kingdon <jkingdon@engr.sgi.com> | 1991-04-24 00:08:50 +0000 |
---|---|---|
committer | Jim Kingdon <jkingdon@engr.sgi.com> | 1991-04-24 00:08:50 +0000 |
commit | 9107291db4840152f7ecff059d89f659965be4b2 (patch) | |
tree | 3824f8c25e98ad86b673c35aff0d15f2b961e5e4 /gdb/dbxread.c | |
parent | 39a2ce33d7f365907352432bce427ec64b774454 (diff) | |
download | gdb-9107291db4840152f7ecff059d89f659965be4b2.zip gdb-9107291db4840152f7ecff059d89f659965be4b2.tar.gz gdb-9107291db4840152f7ecff059d89f659965be4b2.tar.bz2 |
* main.c (cd_command): Call dont_repeat.
* dbxread.c (read_struct_type): If const/volatile character is
missing, don't complain, just continue.
* dbxread.c (read_struct_type): Only try to read the fcontext if
it is there. Also change "error_type " to "return error_type ".
values.c (value_virtual_fn_field): If there is no fcontext,
then do things the way GDB 3.x did.
valops.c (search_struct_method): Add type to value_virtual_fn_field
arguments.
* dbxread.c (read_struct_type): Fix typo: *pp != '\0' -> **pp != '\0'.
Diffstat (limited to 'gdb/dbxread.c')
-rw-r--r-- | gdb/dbxread.c | 26 |
1 files changed, 18 insertions, 8 deletions
diff --git a/gdb/dbxread.c b/gdb/dbxread.c index e9a6c6f..8b39b2f 100644 --- a/gdb/dbxread.c +++ b/gdb/dbxread.c @@ -4588,8 +4588,12 @@ read_struct_type (pp, type) D for `const volatile' member functions. */ if (**pp == 'A' || **pp == 'B' || **pp == 'C' || **pp == 'D') (*pp)++; +#if 0 + /* This probably just means we're processing a file compiled + with g++ version 1. */ else complain(&const_vol_complaint, **pp); +#endif /* 0 */ switch (*(*pp)++) { @@ -4604,14 +4608,20 @@ read_struct_type (pp, type) new_sublist->fn_field.voffset = (0x7fffffff & read_number (pp, ';')) + 1; - /* Figure out from whence this virtual function came. - It may belong to virtual function table of - one of its baseclasses. */ - new_sublist->fn_field.fcontext = read_type (pp); - if (**pp != ';') - error_type (pp); + if (**pp == ';' || **pp == '\0') + /* Must be g++ version 1. */ + new_sublist->fn_field.fcontext = 0; else - ++*pp; + { + /* Figure out from whence this virtual function came. + It may belong to virtual function table of + one of its baseclasses. */ + new_sublist->fn_field.fcontext = read_type (pp); + if (**pp != ';') + return error_type (pp); + else + ++*pp; + } break; case '?': @@ -4629,7 +4639,7 @@ read_struct_type (pp, type) sublist = new_sublist; length++; } - while (**pp != ';' && *pp != '\0'); + while (**pp != ';' && **pp != '\0'); *pp += 1; |