diff options
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/dwarfread.c | 7 |
2 files changed, 12 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index f35b7db..4d95fff 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2003-06-22 Daniel Jacobowitz <drow@mvista.com> + + PR gdb/1179 + * dwarfread.c (struct_type): Skip static fields without crashing. + 2003-06-22 Andrew Cagney <cagney@redhat.com> GDB 6.0 branch created. diff --git a/gdb/dwarfread.c b/gdb/dwarfread.c index 0856b89..ff65db0 100644 --- a/gdb/dwarfread.c +++ b/gdb/dwarfread.c @@ -979,6 +979,13 @@ struct_type (struct dieinfo *dip, char *thisdie, char *enddie, switch (mbr.die_tag) { case TAG_member: + /* Static fields can be either TAG_global_variable (GCC) or else + TAG_member with no location (Diab). We could treat the latter like + the former... but since we don't support the former, just avoid + crashing on the latter for now. */ + if (mbr.at_location == NULL) + break; + /* Get space to record the next field's data. */ new = (struct nextfield *) alloca (sizeof (struct nextfield)); new->next = list; |