dwarf.c (read_function_entry): Add vec_inlined parameter.
authorIan Lance Taylor <iant@google.com>
Thu, 13 Aug 2015 22:56:01 +0000 (22:56 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Thu, 13 Aug 2015 22:56:01 +0000 (22:56 +0000)
* dwarf.c (read_function_entry): Add vec_inlined parameter.
Change all callers.

From-SVN: r226878

libbacktrace/ChangeLog
libbacktrace/dwarf.c

index d043761bbe7732c4adf303e29190f174bbb159ed..5862906907eaac4e7cf71262464e36194503c804 100644 (file)
@@ -1,3 +1,8 @@
+2015-08-13  Ian Lance Taylor  <iant@google.com>
+
+       * dwarf.c (read_function_entry): Add vec_inlined parameter.
+       Change all callers.
+
 2015-06-11  Martin Sebor  <msebor@redhat.com>
 
        PR sanitizer/65479
index e32c46885735d6baed838e791a03fba649efb6eb..54e5ace9b4a68cc557fcc96dce7477ea01af4a62 100644 (file)
@@ -2250,7 +2250,8 @@ read_function_entry (struct backtrace_state *state, struct dwarf_data *ddata,
                     struct unit *u, uint64_t base, struct dwarf_buf *unit_buf,
                     const struct line_header *lhdr,
                     backtrace_error_callback error_callback, void *data,
-                    struct function_vector *vec)
+                    struct function_vector *vec_function,
+                    struct function_vector *vec_inlined)
 {
   while (unit_buf->left > 0)
     {
@@ -2258,6 +2259,7 @@ read_function_entry (struct backtrace_state *state, struct dwarf_data *ddata,
       const struct abbrev *abbrev;
       int is_function;
       struct function *function;
+      struct function_vector *vec;
       size_t i;
       uint64_t lowpc;
       int have_lowpc;
@@ -2279,6 +2281,11 @@ read_function_entry (struct backtrace_state *state, struct dwarf_data *ddata,
                     || abbrev->tag == DW_TAG_entry_point
                     || abbrev->tag == DW_TAG_inlined_subroutine);
 
+      if (abbrev->tag == DW_TAG_inlined_subroutine)
+       vec = vec_inlined;
+      else
+       vec = vec_function;
+
       function = NULL;
       if (is_function)
        {
@@ -2458,7 +2465,8 @@ read_function_entry (struct backtrace_state *state, struct dwarf_data *ddata,
          if (!is_function)
            {
              if (!read_function_entry (state, ddata, u, base, unit_buf, lhdr,
-                                       error_callback, data, vec))
+                                       error_callback, data, vec_function,
+                                       vec_inlined))
                return 0;
            }
          else
@@ -2471,7 +2479,8 @@ read_function_entry (struct backtrace_state *state, struct dwarf_data *ddata,
              memset (&fvec, 0, sizeof fvec);
 
              if (!read_function_entry (state, ddata, u, base, unit_buf, lhdr,
-                                       error_callback, data, &fvec))
+                                       error_callback, data, vec_function,
+                                       &fvec))
                return 0;
 
              if (fvec.count > 0)
@@ -2535,7 +2544,7 @@ read_function_info (struct backtrace_state *state, struct dwarf_data *ddata,
   while (unit_buf.left > 0)
     {
       if (!read_function_entry (state, ddata, u, 0, &unit_buf, lhdr,
-                               error_callback, data, pfvec))
+                               error_callback, data, pfvec, pfvec))
        return;
     }