From a93ba4c0cf1d6ffa46b493643460730265455e4c Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Tue, 25 Aug 2020 16:15:27 +0930 Subject: [PATCH] PR26482, ASAN: _bfd_xcoff_sizeof_headers coff-rs6000.c:2585 PR 26482 * coff-rs6000.c (_bfd_xcoff_sizeof_headers): Ignore sections that won't be output. --- bfd/ChangeLog | 6 ++++++ bfd/coff-rs6000.c | 12 +++++++----- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 7cf99f68f37..c3342ca0966 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2020-08-25 Alan Modra + + PR 26482 + * coff-rs6000.c (_bfd_xcoff_sizeof_headers): Ignore sections that + won't be output. + 2020-08-25 Alan Modra PR 26463 diff --git a/bfd/coff-rs6000.c b/bfd/coff-rs6000.c index 00c9d7c7f4b..48c583bfd02 100644 --- a/bfd/coff-rs6000.c +++ b/bfd/coff-rs6000.c @@ -2580,11 +2580,13 @@ _bfd_xcoff_sizeof_headers (bfd *abfd, /* Sum. */ for (sub = info->input_bfds; sub != NULL; sub = sub->link.next) for (s = sub->sections; s != NULL; s = s->next) - { - struct nbr_reloc_lineno *e = &n_rl[s->output_section->index]; - e->reloc_count += s->reloc_count; - e->lineno_count += s->lineno_count; - } + if (s->output_section->owner == abfd + && !bfd_section_removed_from_list (abfd, s->output_section)) + { + struct nbr_reloc_lineno *e = &n_rl[s->output_section->index]; + e->reloc_count += s->reloc_count; + e->lineno_count += s->lineno_count; + } /* Add the size of a section for each section with an overflow. */ for (s = abfd->sections; s != NULL; s = s->next) -- 2.30.2