>>>>> "Richard" == Richard Biener <richard.guent...@gmail.com> 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

Reply via email to