aboutsummaryrefslogtreecommitdiff
path: root/bfd/elf-sframe.c
diff options
context:
space:
mode:
Diffstat (limited to 'bfd/elf-sframe.c')
-rw-r--r--bfd/elf-sframe.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/bfd/elf-sframe.c b/bfd/elf-sframe.c
index b709e59..2cb732c 100644
--- a/bfd/elf-sframe.c
+++ b/bfd/elf-sframe.c
@@ -120,7 +120,6 @@ sframe_decoder_init_func_bfdinfo (bfd *abfd,
if ((sec->flags & SEC_LINKER_CREATED) && cookie->rels == NULL)
return true;
- BFD_ASSERT (cookie->rels + fde_count == cookie->relend);
rel = cookie->rels;
for (i = 0; i < fde_count; i++)
{
@@ -132,6 +131,14 @@ sframe_decoder_init_func_bfdinfo (bfd *abfd,
rel++;
}
+ /* If there are more relocation entries, they must be R_*_NONE which
+ may be generated from relocations against discarded sections by
+ ld -r. */
+ for (; rel < cookie->relend; rel++)
+ if (rel->r_info != 0)
+ break;
+ BFD_ASSERT (rel == cookie->relend);
+
return true;
}