From: Peter Schauer Date: Fri, 4 Feb 1994 09:19:35 +0000 (+0000) Subject: * dwarfread.c (process_dies): Skip nested TAG_compile_unit DIEs. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=4386eff2d12dc946403cc01998dfdcb1d19676c8;p=binutils-gdb.git * dwarfread.c (process_dies): Skip nested TAG_compile_unit DIEs. * dwarfread.c (add_partial_symbol): Do not enter opaque aggregate definitions into the psymtab. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 0fa40719377..a43aa2c16fd 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +Fri Feb 4 01:14:20 1994 Peter Schauer (pes@regent.e-technik.tu-muenchen.de) + + * dwarfread.c (process_dies): Skip nested TAG_compile_unit DIEs. + * dwarfread.c (add_partial_symbol): Do not enter opaque aggregate + definitions into the psymtab. + Thu Feb 3 12:38:58 1994 Jim Kingdon (kingdon@lioth.cygnus.com) * m68k-stub.c: Treat mc68332 like mc68020 most places. Provide diff --git a/gdb/dwarfread.c b/gdb/dwarfread.c index 956fb7e6d59..be676518c45 100644 --- a/gdb/dwarfread.c +++ b/gdb/dwarfread.c @@ -1,5 +1,5 @@ /* DWARF debugging format support for GDB. - Copyright (C) 1991, 1992 Free Software Foundation, Inc. + Copyright (C) 1991, 1992, 1993, 1994 Free Software Foundation, Inc. Written by Fred Fish at Cygnus Support. Portions based on dbxread.c, mipsread.c, coffread.c, and dwarfread.c from a Data General SVR4 gdb port. @@ -1997,7 +1997,13 @@ process_dies (thisdie, enddie, objfile) switch (di.die_tag) { case TAG_compile_unit: - read_file_scope (&di, thisdie, nextdie, objfile); + /* Skip Tag_compile_unit if we are already inside a compilation + unit, we are unable to handle nested compilation units + properly (FIXME). */ + if (current_subfile == NULL) + read_file_scope (&di, thisdie, nextdie, objfile); + else + nextdie = thisdie + di.die_length; break; case TAG_global_subroutine: case TAG_subroutine: @@ -2618,6 +2624,9 @@ add_partial_symbol (dip, objfile) case TAG_structure_type: case TAG_union_type: case TAG_enumeration_type: + /* Do not add opaque aggregate definitions to the psymtab. */ + if (!dip -> has_at_byte_size) + break; ADD_PSYMBOL_TO_LIST (dip -> at_name, strlen (dip -> at_name), STRUCT_NAMESPACE, LOC_TYPEDEF, objfile -> static_psymbols,