diff options
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 8 | ||||
-rw-r--r-- | gdb/dwarf2read.c | 11 |
2 files changed, 18 insertions, 1 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index d346911..422fe4a 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -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 diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c index 68c2f8e..67898e4 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. */ |