https://sourceware.org/bugzilla/show_bug.cgi?id=24550
Mark Wielaard <mark at klomp dot org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |mark at klomp dot org Summary|eu-readelf does not know |eu-readelf does not know |about DW_AT_GNU_bias |about | |DW_AT_GNU_{bias,numerator,d | |enumerator} --- Comment #1 from Mark Wielaard <mark at klomp dot org> --- We are also missing GNU_AT_GNU_numerator and GNU_AT_GNU_denominator. In theory all that is needed is add them to dwarf.h. Since they are simple constant attributes. diff --git a/libdw/dwarf.h b/libdw/dwarf.h index dc5973352..71ca2baae 100644 --- a/libdw/dwarf.h +++ b/libdw/dwarf.h @@ -351,6 +351,12 @@ enum DW_AT_GNU_pubnames = 0x2134, DW_AT_GNU_pubtypes = 0x2135, + /* https://gcc.gnu.org/wiki/DW_AT_GNU_numerator_denominator */ + DW_AT_GNU_numerator = 0x2303, + DW_AT_GNU_denominator = 0x2304, + /* https://gcc.gnu.org/wiki/DW_AT_GNU_bias */ + DW_AT_GNU_bias = 0x2305, + DW_AT_hi_user = 0x3fff }; But I want to make sure we get the type/signedness right. Could you help me with creating gnat examples that compile and show their usage? If I try to compile your example I get two warnings: tt.adb:4:04: warning: size clause forces biased representation for "Small" tt.adb:8:03: warning: size clause forces biased representation for "Repeat_Count_T" Are those expected? Also the subranges come out as: [ 4e] subrange_type abbrev: 3 lower_bound (sdata) -7 upper_bound (sdata) -4 GNU_bias (sdata) -7 name (strp) "tt__small" type (ref4) [ 8d] [ 8d] base_type abbrev: 7 byte_size (data1) 1 encoding (data1) signed (5) name (strp) "tt__TsmallB" artificial (flag_present) yes and [ 6d] subrange_type abbrev: 6 upper_bound (sdata) 64 GNU_bias (sdata) 1 name (strp) "tt__repeat_count_t" type (ref4) [ 94] [ 94] base_type abbrev: 7 byte_size (data1) 1 encoding (data1) signed (5) name (strp) "tt__Trepeat_count_tB" artificial (flag_present) yes There are three things that surprised me about this. First that the byte_size is 1, are these types really using a full byte and not 2 or 6 bits? And second that the bias is on the subrange_type and not the base_type. Is that intended? Finally, why is the last type signed? Also could you help me create an compilable example of https://gcc.gnu.org/wiki/DW_AT_GNU_numerator_denominator Thanks, Mark -- You are receiving this mail because: You are on the CC list for the bug.