+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
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;
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;
// 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()
{
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()
{
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;
}
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