2012-09-06 Cary Coutant <ccoutant@google.com>

gold/
	* dwarf_reader.cc (Dwarf_die::read_attributes): Add
	DW_FORM_GNU_addr_index and DW_FORM_GNU_str_index.
	(Dwarf_die::skip_attributes): Likewise.
	* object.cc (Read_symbols_data::~Read_symbols_data): Update comment.
	* testsuite/gdb_index_test.cc (inline_func_1): New function.
	(main): Call it.
	* testsuite/gdb_index_test_comm.sh: Check index for inline function.
This commit is contained in:
Cary Coutant 2012-09-07 20:14:10 +00:00
parent aae628c131
commit d2d60eefc4
5 changed files with 28 additions and 1 deletions

View file

@ -1,3 +1,13 @@
2012-09-06 Cary Coutant <ccoutant@google.com>
* dwarf_reader.cc (Dwarf_die::read_attributes): Add
DW_FORM_GNU_addr_index and DW_FORM_GNU_str_index.
(Dwarf_die::skip_attributes): Likewise.
* object.cc (Read_symbols_data::~Read_symbols_data): Update comment.
* testsuite/gdb_index_test.cc (inline_func_1): New function.
(main): Call it.
* testsuite/gdb_index_test_comm.sh: Check index for inline function.
2012-09-05 H.J. Lu <hongjiu.lu@intel.com>
* testsuite/script_test_3.t: Add .got.plt output section

View file

@ -745,6 +745,8 @@ Dwarf_die::read_attributes()
pattr += len;
break;
case elfcpp::DW_FORM_udata:
case elfcpp::DW_FORM_GNU_addr_index:
case elfcpp::DW_FORM_GNU_str_index:
attr_value.val.uintval = read_unsigned_LEB_128(pattr, &len);
pattr += len;
break;
@ -895,6 +897,8 @@ Dwarf_die::skip_attributes()
break;
case elfcpp::DW_FORM_ref_udata:
case elfcpp::DW_FORM_udata:
case elfcpp::DW_FORM_GNU_addr_index:
case elfcpp::DW_FORM_GNU_str_index:
read_unsigned_LEB_128(pattr, &len);
pattr += len;
break;

View file

@ -48,7 +48,8 @@ namespace gold
// Struct Read_symbols_data.
// Destroy any remaining File_view objects.
// Destroy any remaining File_view objects and buffers of decompressed
// sections.
Read_symbols_data::~Read_symbols_data()
{

View file

@ -123,6 +123,16 @@ struct anonymous_union_container {
anonymous_union_container anonymous_union_var;
#ifdef __GNUC__
#define ALWAYS_INLINE __attribute__((always_inline))
#else
#define ALWAYS_INLINE
#endif
static inline ALWAYS_INLINE int
inline_func_1(int i)
{ return i * 17; }
int
main()
{
@ -134,5 +144,6 @@ main()
check(&two::c2v1);
check(&two::c2v2);
check(&two::c2v3);
anonymous_union_var.u.b = inline_func_1(3) - 51;
return anonymous_union_var.u.b;
}

View file

@ -80,5 +80,6 @@ check $STDOUT "^\[ *[0-9]*\] two::c2<int>:"
check $STDOUT "^\[ *[0-9]*\] two::c2v1:"
check $STDOUT "^\[ *[0-9]*\] two::c2v2:"
check $STDOUT "^\[ *[0-9]*\] anonymous_union_var:"
check $STDOUT "^\[ *[0-9]*\] inline_func_1:"
exit 0