diff --git a/gdb/ChangeLog b/gdb/ChangeLog index d346911c91f..422fe4aabdf 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,11 @@ +Mon Feb 14 15:20:26 2000 Andrew Cagney + + From 1999-11-24 Jason Merrill : + * 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 * config/i386/nbsd.mt (GDBSERVER_DEPFILES): Add low-nbsd.o diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c index 68c2f8e33a3..67898e43159 100644 --- a/gdb/dwarf2read.c +++ b/gdb/dwarf2read.c @@ -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. */