[PATCH] Handle DW_TAG_subrange_type
Joel Brobecker
brobecker@gnat.com
Thu Dec 4 17:49:00 GMT 2003
> Can you post an example of the debug info you see for Ada in this
> case, just for the record?
In addition to the example posted by Andreas, here is the code in GCC
that generates these subrange types:
static dw_die_ref
subrange_type_die (tree type)
{
dw_die_ref subtype_die;
dw_die_ref subrange_die;
tree name = TYPE_NAME (type);
subtype_die = base_type_die (TREE_TYPE (type));
if (TREE_CODE (name) == TYPE_DECL)
name = DECL_NAME (name);
subrange_die = new_die (DW_TAG_subrange_type, comp_unit_die, type);
add_name_attribute (subrange_die, IDENTIFIER_POINTER (name));
if (TYPE_MIN_VALUE (type) != NULL)
add_bound_info (subrange_die, DW_AT_lower_bound,
TYPE_MIN_VALUE (type));
if (TYPE_MAX_VALUE (type) != NULL)
add_bound_info (subrange_die, DW_AT_upper_bound,
TYPE_MAX_VALUE (type));
add_AT_die_ref (subrange_die, DW_AT_type, subtype_die);
return subrange_die;
}
So the only information we are stuffing in these types are the name,
the bounds, and a reference to the parent type.
--
Joel
More information about the Gdb-patches
mailing list