diff options
author | Doug Evans <dje@google.com> | 2010-08-23 21:44:39 +0000 |
---|---|---|
committer | Doug Evans <dje@google.com> | 2010-08-23 21:44:39 +0000 |
commit | 9dc481d3a701b7590500b20a6ed6365b59a97544 (patch) | |
tree | 5aeae3e3eed32b50a569fa4aad10383ce02b4087 | |
parent | f9ffd4bb11c401df4c0c5733e946c48d6b295c5e (diff) | |
download | gdb-9dc481d3a701b7590500b20a6ed6365b59a97544.zip gdb-9dc481d3a701b7590500b20a6ed6365b59a97544.tar.gz gdb-9dc481d3a701b7590500b20a6ed6365b59a97544.tar.bz2 |
* dwarf2read.c (read_structure_type): Add comment.
(read_enumeration_type): Add comment.
(process_enumeration_scope): Move definition of some locals
closer to their use.
(read_namespace_type): Add comment.
-rw-r--r-- | gdb/ChangeLog | 8 | ||||
-rw-r--r-- | gdb/dwarf2read.c | 25 |
2 files changed, 25 insertions, 8 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 2f0de7c..7b1adbc 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,11 @@ +2010-08-23 Doug Evans <dje@google.com> + + * dwarf2read.c (read_structure_type): Add comment. + (read_enumeration_type): Add comment. + (process_enumeration_scope): Move definition of some locals + closer to their use. + (read_namespace_type): Add comment. + 2010-08-23 Tom Tromey <tromey@redhat.com> PR python/11145: diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c index ec623a7..765a5d8 100644 --- a/gdb/dwarf2read.c +++ b/gdb/dwarf2read.c @@ -6658,6 +6658,9 @@ read_structure_type (struct die_info *die, struct dwarf2_cu *cu) This is important, for example, because for c++ classes we need TYPE_NAME set which is only done by new_symbol. Blech. */ type = read_type_die (type_die, type_cu); + + /* TYPE_CU may not be the same as CU. + Ensure TYPE is recorded in CU's type_hash table. */ return set_die_type (die, type, cu); } @@ -6962,6 +6965,9 @@ read_enumeration_type (struct die_info *die, struct dwarf2_cu *cu) struct die_info *type_die = follow_die_ref_or_sig (die, attr, &type_cu); type = read_type_die (type_die, type_cu); + + /* TYPE_CU may not be the same as CU. + Ensure TYPE is recorded in CU's type_hash table. */ return set_die_type (die, type, cu); } @@ -7002,21 +7008,21 @@ read_enumeration_type (struct die_info *die, struct dwarf2_cu *cu) static void process_enumeration_scope (struct die_info *die, struct dwarf2_cu *cu) { - struct die_info *child_die; - struct field *fields; - struct symbol *sym; - int num_fields; - int unsigned_enum = 1; - char *name; struct type *this_type; - num_fields = 0; - fields = NULL; this_type = get_die_type (die, cu); if (this_type == NULL) this_type = read_enumeration_type (die, cu); + if (die->child != NULL) { + struct die_info *child_die; + struct symbol *sym; + struct field *fields = NULL; + int num_fields = 0; + int unsigned_enum = 1; + char *name; + child_die = die->child; while (child_die && child_die->tag) { @@ -7305,6 +7311,9 @@ read_namespace_type (struct die_info *die, struct dwarf2_cu *cu) ext_die = dwarf2_extension (die, &ext_cu); type = read_type_die (ext_die, ext_cu); + + /* EXT_CU may not be the same as CU. + Ensure TYPE is recorded in CU's type_hash table. */ return set_die_type (die, type, cu); } |