2012-09-06 Cary Coutant <ccoutant@google.com>
authorCary Coutant <ccoutant@google.com>
Fri, 7 Sep 2012 20:14:10 +0000 (20:14 +0000)
committerCary Coutant <ccoutant@google.com>
Fri, 7 Sep 2012 20:14:10 +0000 (20:14 +0000)
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.

gold/ChangeLog
gold/dwarf_reader.cc
gold/object.cc
gold/testsuite/gdb_index_test.cc
gold/testsuite/gdb_index_test_comm.sh

index 320f832..ce00f17 100644 (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
index ac87f4b..0034703 100644 (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;
index 6c0c187..6ee10f5 100644 (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()
 {
index 342d47c..d5ac2f1 100644 (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;
 }
index 7100329..4ab07b3 100755 (executable)
@@ -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