diff options
Diffstat (limited to 'bfd/elf-sframe.c')
-rw-r--r-- | bfd/elf-sframe.c | 9 |
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; } |