PATCH: In dwarf2read, restore local_symbols and param_symbols

Jim Blandy
2002-11-08T19:32:15Z

2002-11-08 Jim Blandy <jimb@redhat.com>

* dwarf2read.c (read_func_scope): Restore local_symbols and
param_symbols after we finish the function context. (Based on a
patch from David Edelsohn.)

Index: gdb/dwarf2read.c
===================================================================
RCS file: /cvs/src/src/gdb/dwarf2read.c,v
retrieving revision 1.72
diff -c -r1.72 dwarf2read.c
*** gdb/dwarf2read.c 25 Oct 2002 22:25:55 -0000 1.72
--- gdb/dwarf2read.c 8 Nov 2002 19:30:13 -0000
***************
*** 2013,2018 ****
--- 2013,2026 ----
/* Make a block for the local symbols within. */
finish_block (new->name, &local_symbols, new->old_blocks,
lowpc, highpc, objfile);
+
+ /* In C++, we can have functions nested inside functions (e.g., when
+ a function declares a class that has methods). This means that
+ when we finish processing a function scope, we may need to go
+ back to building a containing block's symbol lists. */
+ local_symbols = new->locals;
+ param_symbols = new->params;
+
list_in_scope = &file_symbols;
}