summaryrefslogtreecommitdiff
path: root/gdb/dbxread.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/dbxread.c')
-rw-r--r--gdb/dbxread.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/gdb/dbxread.c b/gdb/dbxread.c
index 0cf70919972..538f076a6f7 100644
--- a/gdb/dbxread.c
+++ b/gdb/dbxread.c
@@ -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);