mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-08-06 14:49:38 +08:00
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:
@ -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);
|
||||
|
Reference in New Issue
Block a user