This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
[PATCH] bfd/dwarf2.c: fix assertion failure in comp_unit_hash_info
- From: Max Filippov <jcmvbkbc at gmail dot com>
- To: binutils at sourceware dot org
- Cc: Eric Tsai <erictsai at cadence dot com>, Nick Clifton <nickc at redhat dot com>, Max Filippov <jcmvbkbc at gmail dot com>
- Date: Thu, 10 Oct 2019 16:49:51 -0700
- Subject: [PATCH] bfd/dwarf2.c: fix assertion failure in comp_unit_hash_info
stash_maybe_enable_info_hash_tables sets
stash->info_hash_status = STASH_INFO_HASH_ON;
regardless of the result of stash_maybe_update_info_hash_tables call. In
case it fails this results in repeated invocation of comp_unit_hash_info
for the same comp unit and assertion failure in this function.
Only set stash->info_hash_status = STASH_INFO_HASH_ON; when
stash_maybe_update_info_hash_tables is successful.
bfd/
2019-10-10 Max Filippov <jcmvbkbc@gmail.com>
* dwarf2.c (stash_maybe_enable_info_hash_tables): Only set
stash->info_hash_status = STASH_INFO_HASH_ON when
stash_maybe_update_info_hash_tables succeeds.
---
bfd/dwarf2.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/bfd/dwarf2.c b/bfd/dwarf2.c
index 88aaa2d23c22..75d19aa83750 100644
--- a/bfd/dwarf2.c
+++ b/bfd/dwarf2.c
@@ -4231,8 +4231,8 @@ stash_maybe_enable_info_hash_tables (bfd *abfd, struct dwarf2_debug *stash)
/* We need a forced update so that the info hash tables will
be created even though there is no compilation unit. That
happens if STASH_INFO_HASH_TRIGGER is 0. */
- stash_maybe_update_info_hash_tables (stash);
- stash->info_hash_status = STASH_INFO_HASH_ON;
+ if (stash_maybe_update_info_hash_tables (stash))
+ stash->info_hash_status = STASH_INFO_HASH_ON;
}
/* Find the file and line associated with a symbol and address using the
--
2.20.1