Allow reference form for DW_AT_associated and DW_AT_allocated attributes
Currently, GDB rejects the (die) reference form while it accepts exprloc form. It is allowed in DWARF standard. "Table 7.5: Attribute encodings" in DWARF5 standard. Flang compiler assigns (die) reference to DW_AT_associated and DW_AT_allocated for some cases. gdb/ChangeLog * dwarf2/read.c (set_die_type): Removed conditions to restrict forms for DW_AT_associated and DW_AT_allocated attributes, which is already checked in function attr_to_dynamic_prop.
This commit is contained in:
parent
cc574a35a2
commit
9cdf98207c
2 changed files with 8 additions and 14 deletions
|
@ -1,3 +1,9 @@
|
|||
2020-07-01 Alok Kumar Sharma <AlokKumar.Sharma@amd.com>
|
||||
|
||||
* dwarf2/read.c (set_die_type): Removed conditions to restrict
|
||||
forms for DW_AT_associated and DW_AT_allocated attributes,
|
||||
which is already checked in function attr_to_dynamic_prop.
|
||||
|
||||
2020-06-30 Tom Tromey <tromey@adacore.com>
|
||||
|
||||
* dwarf2/read.c (quirk_rust_enum): Correctly call
|
||||
|
|
|
@ -23859,33 +23859,21 @@ set_die_type (struct die_info *die, struct type *type, struct dwarf2_cu *cu)
|
|||
|
||||
/* Read DW_AT_allocated and set in type. */
|
||||
attr = dwarf2_attr (die, DW_AT_allocated, cu);
|
||||
if (attr != NULL && attr->form_is_block ())
|
||||
if (attr != NULL)
|
||||
{
|
||||
struct type *prop_type = cu->addr_sized_int_type (false);
|
||||
if (attr_to_dynamic_prop (attr, die, cu, &prop, prop_type))
|
||||
type->add_dyn_prop (DYN_PROP_ALLOCATED, prop);
|
||||
}
|
||||
else if (attr != NULL)
|
||||
{
|
||||
complaint (_("DW_AT_allocated has the wrong form (%s) at DIE %s"),
|
||||
(attr != NULL ? dwarf_form_name (attr->form) : "n/a"),
|
||||
sect_offset_str (die->sect_off));
|
||||
}
|
||||
|
||||
/* Read DW_AT_associated and set in type. */
|
||||
attr = dwarf2_attr (die, DW_AT_associated, cu);
|
||||
if (attr != NULL && attr->form_is_block ())
|
||||
if (attr != NULL)
|
||||
{
|
||||
struct type *prop_type = cu->addr_sized_int_type (false);
|
||||
if (attr_to_dynamic_prop (attr, die, cu, &prop, prop_type))
|
||||
type->add_dyn_prop (DYN_PROP_ASSOCIATED, prop);
|
||||
}
|
||||
else if (attr != NULL)
|
||||
{
|
||||
complaint (_("DW_AT_associated has the wrong form (%s) at DIE %s"),
|
||||
(attr != NULL ? dwarf_form_name (attr->form) : "n/a"),
|
||||
sect_offset_str (die->sect_off));
|
||||
}
|
||||
|
||||
/* Read DW_AT_data_location and set in type. */
|
||||
attr = dwarf2_attr (die, DW_AT_data_location, cu);
|
||||
|
|
Loading…
Add table
Reference in a new issue