130 lines
4.3 KiB
Diff
130 lines
4.3 KiB
Diff
|
http://sourceware.org/ml/gdb-patches/2007-12/msg00397.html
|
||
|
http://sourceware.org/ml/gdb-cvs/2007-12/msg00123.html
|
||
|
|
||
|
2007-12-22 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||
|
|
||
|
* dwarf2read.c (scan_partial_symbols partial_die_parent_scope)
|
||
|
(add_partial_symbol, pdi_needs_namespace, process_die)
|
||
|
(is_type_tag_for_partial, load_partial_dies, new_symbol)
|
||
|
(read_type_die, determine_prefix): Extend the current code of
|
||
|
`DW_TAG_class_type' also for `DW_TAG_interface_type'.
|
||
|
|
||
|
2007-12-28 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||
|
|
||
|
* dwarf2read.c (fixup_partial_die): Provide full
|
||
|
`DW_TAG_class_type'-type backing for `DW_TAG_interface_type', even for
|
||
|
namespaces which should not apply for Java `DW_TAG_interface_type'.
|
||
|
|
||
|
===================================================================
|
||
|
RCS file: /cvs/src/src/gdb/dwarf2read.c,v
|
||
|
retrieving revision 1.242
|
||
|
retrieving revision 1.243
|
||
|
diff -u -r1.242 -r1.243
|
||
|
--- src/gdb/dwarf2read.c 2007/12/17 18:38:30 1.242
|
||
|
+++ src/gdb/dwarf2read.c 2007/12/22 20:58:30 1.243
|
||
|
@@ -1747,6 +1747,7 @@
|
||
|
}
|
||
|
break;
|
||
|
case DW_TAG_class_type:
|
||
|
+ case DW_TAG_interface_type:
|
||
|
case DW_TAG_structure_type:
|
||
|
if (!pdi->is_declaration)
|
||
|
{
|
||
|
@@ -1829,6 +1830,7 @@
|
||
|
if (parent->tag == DW_TAG_namespace
|
||
|
|| parent->tag == DW_TAG_structure_type
|
||
|
|| parent->tag == DW_TAG_class_type
|
||
|
+ || parent->tag == DW_TAG_interface_type
|
||
|
|| parent->tag == DW_TAG_union_type)
|
||
|
{
|
||
|
if (grandparent_scope == NULL)
|
||
|
@@ -1976,6 +1978,7 @@
|
||
|
0, (CORE_ADDR) 0, cu->language, objfile);
|
||
|
break;
|
||
|
case DW_TAG_class_type:
|
||
|
+ case DW_TAG_interface_type:
|
||
|
case DW_TAG_structure_type:
|
||
|
case DW_TAG_union_type:
|
||
|
case DW_TAG_enumeration_type:
|
||
|
@@ -2057,6 +2060,7 @@
|
||
|
case DW_TAG_namespace:
|
||
|
case DW_TAG_typedef:
|
||
|
case DW_TAG_class_type:
|
||
|
+ case DW_TAG_interface_type:
|
||
|
case DW_TAG_structure_type:
|
||
|
case DW_TAG_union_type:
|
||
|
case DW_TAG_enumeration_type:
|
||
|
@@ -2676,6 +2680,7 @@
|
||
|
read_lexical_block_scope (die, cu);
|
||
|
break;
|
||
|
case DW_TAG_class_type:
|
||
|
+ case DW_TAG_interface_type:
|
||
|
case DW_TAG_structure_type:
|
||
|
case DW_TAG_union_type:
|
||
|
read_structure_type (die, cu);
|
||
|
@@ -5403,6 +5408,7 @@
|
||
|
#endif
|
||
|
case DW_TAG_base_type:
|
||
|
case DW_TAG_class_type:
|
||
|
+ case DW_TAG_interface_type:
|
||
|
case DW_TAG_enumeration_type:
|
||
|
case DW_TAG_structure_type:
|
||
|
case DW_TAG_subrange_type:
|
||
|
@@ -5608,6 +5614,7 @@
|
||
|
|| last_die->tag == DW_TAG_enumeration_type
|
||
|
|| (cu->language != language_c
|
||
|
&& (last_die->tag == DW_TAG_class_type
|
||
|
+ || last_die->tag == DW_TAG_interface_type
|
||
|
|| last_die->tag == DW_TAG_structure_type
|
||
|
|| last_die->tag == DW_TAG_union_type))))
|
||
|
{
|
||
|
@@ -7358,6 +7365,7 @@
|
||
|
(FIXME?) */
|
||
|
break;
|
||
|
case DW_TAG_class_type:
|
||
|
+ case DW_TAG_interface_type:
|
||
|
case DW_TAG_structure_type:
|
||
|
case DW_TAG_union_type:
|
||
|
case DW_TAG_set_type:
|
||
|
@@ -7677,6 +7685,7 @@
|
||
|
switch (die->tag)
|
||
|
{
|
||
|
case DW_TAG_class_type:
|
||
|
+ case DW_TAG_interface_type:
|
||
|
case DW_TAG_structure_type:
|
||
|
case DW_TAG_union_type:
|
||
|
read_structure_type (die, cu);
|
||
|
@@ -7781,6 +7790,7 @@
|
||
|
}
|
||
|
break;
|
||
|
case DW_TAG_class_type:
|
||
|
+ case DW_TAG_interface_type:
|
||
|
case DW_TAG_structure_type:
|
||
|
{
|
||
|
if (parent->type != NULL && TYPE_TAG_NAME (parent->type) != NULL)
|
||
|
Index: ./gdb/dwarf2read.c
|
||
|
===================================================================
|
||
|
RCS file: /cvs/src/src/gdb/dwarf2read.c,v
|
||
|
retrieving revision 1.245
|
||
|
diff -u -p -r1.245 dwarf2read.c
|
||
|
--- ./gdb/dwarf2read.c 26 Dec 2007 12:36:18 -0000 1.245
|
||
|
+++ ./gdb/dwarf2read.c 27 Dec 2007 23:25:49 -0000
|
||
|
@@ -5887,7 +5887,8 @@ fixup_partial_die (struct partial_die_in
|
||
|
|
||
|
/* Set default names for some unnamed DIEs. */
|
||
|
if (part_die->name == NULL && (part_die->tag == DW_TAG_structure_type
|
||
|
- || part_die->tag == DW_TAG_class_type))
|
||
|
+ || part_die->tag == DW_TAG_class_type
|
||
|
+ || part_die->tag == DW_TAG_interface_type))
|
||
|
part_die->name = "(anonymous class)";
|
||
|
|
||
|
if (part_die->name == NULL && part_die->tag == DW_TAG_namespace)
|
||
|
@@ -5895,6 +5896,7 @@ fixup_partial_die (struct partial_die_in
|
||
|
|
||
|
if (part_die->tag == DW_TAG_structure_type
|
||
|
|| part_die->tag == DW_TAG_class_type
|
||
|
+ || part_die->tag == DW_TAG_interface_type
|
||
|
|| part_die->tag == DW_TAG_union_type)
|
||
|
guess_structure_name (part_die, cu);
|
||
|
}
|