diff options
-rw-r--r-- | gdb/ChangeLog | 6 | ||||
-rw-r--r-- | gdb/c-exp.y | 1 | ||||
-rw-r--r-- | gdb/gdbtypes.c | 10 |
3 files changed, 13 insertions, 4 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 54cb0d1..d846ad0 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,11 @@ Wed Dec 29 12:32:08 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + * c-exp.y: Revert Kung's change. "..." is not a type, and the + change caused "p (...)0" to dump core. + * gdbtypes.c (check_stub_method): Don't pass "..." to + parse_and_eval_type. This should fix the bug which Kung was + trying to fix. + * stabsread.c (define_symbol): If we choose not to combine two symbols, don't just ignore the second (LOC_REGISTER) one. * printcmd.c (print_frame_args): If we have a LOC_ARG and a diff --git a/gdb/c-exp.y b/gdb/c-exp.y index f58424f..ebc1ca6 100644 --- a/gdb/c-exp.y +++ b/gdb/c-exp.y @@ -831,7 +831,6 @@ typebase /* Implements (approximately): (type-qualifier)* type-specifier */ be too. */ | CONST_KEYWORD typebase { $$ = $2; } | VOLATILE_KEYWORD typebase { $$ = $2; } - | '.' '.' '.' { $$ = NULL; } ; typename: TYPENAME diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c index e361796..d1a7da9 100644 --- a/gdb/gdbtypes.c +++ b/gdb/gdbtypes.c @@ -989,9 +989,13 @@ check_stub_method (type, i, j) { if (depth <= 0 && (*p == ',' || *p == ')')) { - argtypes[argcount] = - parse_and_eval_type (argtypetext, p - argtypetext); - argcount += 1; + /* Avoid parsing of ellipsis, they will be handled below. */ + if (strncmp (argtypetext, "...", p - argtypetext) != 0) + { + argtypes[argcount] = + parse_and_eval_type (argtypetext, p - argtypetext); + argcount += 1; + } argtypetext = p + 1; } |