aboutsummaryrefslogtreecommitdiff
path: root/gdb/dbxread.c
diff options
context:
space:
mode:
authorJim Kingdon <jkingdon@engr.sgi.com>1991-04-24 00:08:50 +0000
committerJim Kingdon <jkingdon@engr.sgi.com>1991-04-24 00:08:50 +0000
commit9107291db4840152f7ecff059d89f659965be4b2 (patch)
tree3824f8c25e98ad86b673c35aff0d15f2b961e5e4 /gdb/dbxread.c
parent39a2ce33d7f365907352432bce427ec64b774454 (diff)
downloadgdb-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.c26
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;