This comes up for functions which have tail-calls optimized.
Describe location list for DW_AT_GNU_call_site_* to match readelf.
Add test elf file to demonstrate that we match readelf for DW_AT_GNU_call_site_*. C source is:
extern int f2(int a, char b);
extern char var;
int f1(void) { return f2(666, var); }
DW_AT_data_location=_location_list_extra,
DW_AT_stride=_location_list_extra,
DW_AT_import=_import_extra,
+ DW_AT_GNU_call_site_value=_location_list_extra,
+ DW_AT_GNU_call_site_data_value=_location_list_extra,
+ DW_AT_GNU_call_site_target=_location_list_extra,
+ DW_AT_GNU_call_site_target_clobbered=_location_list_extra,
)
# 8 in a line, for easier counting
DW_TAG_rvalue_reference_type = 0x42,
DW_TAG_lo_user = 0x4080,
+ DW_TAG_GNU_call_site = 0x4109,
+ DW_TAG_GNU_call_site_parameter = 0x410a,
DW_TAG_hi_user = 0xffff,
_default_ = Pass,