2002-11-18 Klee Dienes <kdienes@apple.com>

* buildsym.h (pop_context): Convert to function, defined in
        buildsym.c.
        * buildsym.c: Include gdb_assert.h.
        (pop_context): Implement as C function.  Add check for stack
        underflow.
        * dbxread.c (process_one_symbol): Complain and stop processing
        that symbol if we are already at the top of the context stack for
        a function-end N_FUN (this would imply an umatched RBRAC).  Ditto
        when processing N_RBRAC.
This commit is contained in:
Klee Dienes
2002-11-18 19:14:10 +00:00
parent 11041102f2
commit 0c5e171aed
4 changed files with 36 additions and 6 deletions

View File

@ -2774,6 +2774,13 @@ process_one_symbol (int type, int desc, CORE_ADDR valu, char *name,
{
/* This N_FUN marks the end of a function. This closes off the
current block. */
if (context_stack_depth <= 0)
{
complain (&lbrac_mismatch_complaint, symnum);
break;
}
record_line (current_subfile, 0, function_start_offset + valu);
within_function = 0;
new = pop_context ();
@ -2843,6 +2850,12 @@ process_one_symbol (int type, int desc, CORE_ADDR valu, char *name,
N_SO, the linker did not relocate them (sigh). */
valu += last_source_start_addr;
if (context_stack_depth <= 0)
{
complain (&lbrac_mismatch_complaint, symnum);
break;
}
new = pop_context ();
if (desc != new->depth)
complain (&lbrac_mismatch_complaint, symnum);