Handle DW_TAG_unspecified_type
2011-11-14 Jim Ingham <jingham@apple.com> * dwarf2read.c (read_type_die): Handle DW_TAG_unspecified_type. (read_tag_unspecified_type): New function, add a type for the DW_TAG_unspecified_type die. Obtained from: Apple, gdb-1752
This commit is contained in:
parent
513f8c0cb8
commit
8d56b202dd
@ -825,6 +825,8 @@ static void read_array_type (struct die_info *, struct dwarf2_cu *);
|
||||
|
||||
static void read_tag_pointer_type (struct die_info *, struct dwarf2_cu *);
|
||||
|
||||
static void read_tag_unspecified_type (struct die_info *, struct dwarf2_cu *);
|
||||
|
||||
static void read_tag_ptr_to_member_type (struct die_info *,
|
||||
struct dwarf2_cu *);
|
||||
|
||||
@ -3721,6 +3723,27 @@ read_tag_reference_type (struct die_info *die, struct dwarf2_cu *cu)
|
||||
die->type = type;
|
||||
}
|
||||
|
||||
static void
|
||||
read_tag_unspecified_type (struct die_info *die, struct dwarf2_cu *cu)
|
||||
{
|
||||
struct objfile *objfile = cu->objfile;
|
||||
struct type *type;
|
||||
struct attribute *attr;
|
||||
|
||||
if (die->type)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
type = alloc_type (objfile);
|
||||
TYPE_LENGTH (type) = 0;
|
||||
attr = dwarf2_attr (die, DW_AT_name, cu);
|
||||
if (attr && DW_STRING (attr))
|
||||
TYPE_NAME (type) = DW_STRING (attr);
|
||||
|
||||
die->type = type;
|
||||
}
|
||||
|
||||
static void
|
||||
read_tag_const_type (struct die_info *die, struct dwarf2_cu *cu)
|
||||
{
|
||||
@ -6094,6 +6117,9 @@ read_type_die (struct die_info *die, struct dwarf2_cu *cu)
|
||||
case DW_TAG_pointer_type:
|
||||
read_tag_pointer_type (die, cu);
|
||||
break;
|
||||
case DW_TAG_unspecified_type:
|
||||
read_tag_unspecified_type (die, cu);
|
||||
break;
|
||||
case DW_TAG_ptr_to_member_type:
|
||||
read_tag_ptr_to_member_type (die, cu);
|
||||
break;
|
||||
|
Loading…
x
Reference in New Issue
Block a user