* dwarfread.c (process_dies): Skip nested TAG_compile_unit DIEs.
authorPeter Schauer <Peter.Schauer@mytum.de>
Fri, 4 Feb 1994 09:19:35 +0000 (09:19 +0000)
committerPeter Schauer <Peter.Schauer@mytum.de>
Fri, 4 Feb 1994 09:19:35 +0000 (09:19 +0000)
* dwarfread.c (add_partial_symbol):  Do not enter opaque aggregate
definitions into the psymtab.

gdb/ChangeLog
gdb/dwarfread.c

index 0fa40719377b628e0da5291467515555db59a443..a43aa2c16fd0514d1c0829243e35ce887afb4780 100644 (file)
@@ -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
index 956fb7e6d59828c762d8bd16f5bfc10a86559746..be676518c450bf771101f9a6885f09aa4a5245de 100644 (file)
@@ -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,