From e168da45a26f1067cb939a91c5d673b33911023a Mon Sep 17 00:00:00 2001 From: Max Filippov Date: Thu, 10 Oct 2019 16:37:25 -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-11 Max Filippov * 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/ChangeLog | 6 ++++++ bfd/dwarf2.c | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 87a6244bca5..56f38cfb039 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2019-10-11 Max Filippov + + * 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. + 2019-10-09 Alan Modra PR 25070 diff --git a/bfd/dwarf2.c b/bfd/dwarf2.c index 88aaa2d23c2..75d19aa8375 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.30.2