>>>>> "Richard" == Richard Biener <[email protected]> writes:
Sorry about the delay on this.
>> - mod_type_die = subrange_type_die (type, low, high, bias, context_die);
>> + mod_type_die = subrange_type_die (type, low, high, bias, mod_scope);
Richard> that looks good. But why not for the ARRAY_TYPE case dircetly
Richard> above?
I think I just didn't happen to need it.
I can make this change if you think it's desirable.
>> - add_child_die_after (comp_unit_die (), mod_type_die, after_die);
>> + add_child_die_after (mod_scope, mod_type_die, after_die);
Richard> For the next DW_AT_endianity there's an assert for the correct
Richard> placement but not here So I'm not positive this change is
Richard> according to the comment. In fact we're realing with base-type
Richard> DIEs here, and those are usually directly at comp_unit_die (),
Richard> no?
In C/C++, I think base types are normally only emitted at comp-unit
scope.
Ada (with my patches that are still in progress) may emit base types
that have a different scope. For a type like:
package body Pck is
type My_Other_Int is mod 2**8;
<1><9a>: Abbrev Number: 1 (DW_TAG_base_type)
<9b> DW_AT_byte_size : 1
<9c> DW_AT_encoding : 7 (unsigned)
<9d> DW_AT_name : (indirect string, offset: 0xf): pck__my_other_int
This is the "encoded" (non-hierarchical) form, which is why it's
currently a child of the CU DIE and why that "pkg__" prefix is in there.
My patches will change this to emit a DW_TAG_module named "pck" that
contains a base type named "my_other_int".
thanks,
Tom