summaryrefslogtreecommitdiff
path: root/libdw/ChangeLog
diff options
context:
space:
mode:
authorMark Wielaard <mark@klomp.org>2023-01-22 00:31:57 +0100
committerMark Wielaard <mark@klomp.org>2023-01-30 22:05:41 +0100
commitb7c7d8776ed46e2237d18fb15c6b72e83cfa259b (patch)
tree880bcb194268909ebac5147a0d10b23fc508f856 /libdw/ChangeLog
parentc6b38c2d670f7db732a34fd8e65e94942801c0f8 (diff)
downloadelfutils-b7c7d8776ed46e2237d18fb15c6b72e83cfa259b.tar.gz
libdw: Search for abstract origin in the correct CU
With gcc -flto the abstract origin of an inlined subroutine could be in a different CU. dwarf_getscopes might return an empty scope if it cannot find the abstract origin scope. So make sure to search in the We also tried to add the origin match in pc_record directly in the current inlined scope. This always failed, causing to do a needless traversal, followed by the full CU scan in dwarf_getscopes. Just always stop the pc_record search and then do the CU origin_match in dwarf_getscopes. Signed-off-by: Mark Wielaard <mark@klomp.org>
Diffstat (limited to 'libdw/ChangeLog')
-rw-r--r--libdw/ChangeLog6
1 files changed, 6 insertions, 0 deletions
diff --git a/libdw/ChangeLog b/libdw/ChangeLog
index 4c7af94e..71e96c88 100644
--- a/libdw/ChangeLog
+++ b/libdw/ChangeLog
@@ -1,3 +1,9 @@
+2023-01-22 Mark Wielaard <mark@klomp.org>
+
+ * dwarf_getscopes.c (pc_record): Return nscopes when done.
+ (dwarf_getscopes): Call __libdw_visit_scopes with
+ inlined_origin CU.
+
2022-12-20 Mark Wielaard <mark@klomp.org>
* Makefile.am (AM_CPPFLAGS): Add -I$(srcdir)/../libebl.