From Jason Merrill: (die_is_declaration): New fn..
authorAndrew Cagney <cagney@redhat.com>
Mon, 14 Feb 2000 04:37:06 +0000 (04:37 +0000)
committerAndrew Cagney <cagney@redhat.com>
Mon, 14 Feb 2000 04:37:06 +0000 (04:37 +0000)
gdb/ChangeLog
gdb/dwarf2read.c

index d346911c91fafca56fc004b4f070753cdce2800f..422fe4aabdf1c6d16c603d893dfa24fbad88f49f 100644 (file)
@@ -1,3 +1,11 @@
+Mon Feb 14 15:20:26 2000  Andrew Cagney  <cagney@b1.cygnus.com>
+
+       From 1999-11-24 Jason Merrill <jason@casey.cygnus.com>:
+       * dwarf2read.c: (die_is_declaration): New fn.
+       (read_structure_scope): Use it.
+
+       * dwarf2read.c: (die_is_declaration): Convert to ISO-C.
+
 2000-02-10  J.T. Conklin  <jtc@redback.com>
 
        * config/i386/nbsd.mt (GDBSERVER_DEPFILES): Add low-nbsd.o
index 68c2f8e33a3ebfd1574972e706f7814c5dfba745..67898e431593dc95c6a24ef31fc847e3b7d3451e 100644 (file)
@@ -621,6 +621,8 @@ static void set_cu_language PARAMS ((unsigned int));
 static struct attribute *dwarf_attr PARAMS ((struct die_info *,
                                             unsigned int));
 
+static int die_is_declaration (struct die_info *);
+
 static void dwarf_decode_lines PARAMS ((unsigned int, char *, bfd *));
 
 static void dwarf2_start_subfile PARAMS ((char *, char *));
@@ -2202,7 +2204,7 @@ read_structure_scope (die, objfile)
      type within the structure itself. */
   die->type = type;
 
-  if (die->has_children)
+  if (die->has_children && ! die_is_declaration (die))
     {
       struct field_info fi;
       struct die_info *child_die;
@@ -3700,6 +3702,13 @@ dwarf_attr (die, name)
   return NULL;
 }
 
+static int
+die_is_declaration (struct die_info *die)
+{
+  return (dwarf_attr (die, DW_AT_declaration)
+         && ! dwarf_attr (die, DW_AT_specification));
+}
+
 /* Decode the line number information for the compilation unit whose
    line number info is at OFFSET in the .debug_line section.
    The compilation directory of the file is passed in COMP_DIR.  */