mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-02-23 13:21:43 +08:00
merge_gnu_build_notes reloc deletion
If moving relocs, the next reloc to look at is at the same location. * objcopy.c (merge_gnu_build_notes): Correct code deleting relocs.
This commit is contained in:
parent
6224c85813
commit
ee7e95efb9
@ -1,3 +1,8 @@
|
|||||||
|
2017-05-01 Alan Modra <amodra@gmail.com>
|
||||||
|
|
||||||
|
* objcopy.c (merge_gnu_build_notes): Correct code deleting
|
||||||
|
relocs.
|
||||||
|
|
||||||
2017-04-28 Nick Clifton <nickc@redhat.com>
|
2017-04-28 Nick Clifton <nickc@redhat.com>
|
||||||
|
|
||||||
PR binutils/21439
|
PR binutils/21439
|
||||||
|
@ -2185,15 +2185,18 @@ merge_gnu_build_notes (bfd * abfd, asection * sec, bfd_size_type size, bfd_byte
|
|||||||
|
|
||||||
if (relcount > 0)
|
if (relcount > 0)
|
||||||
{
|
{
|
||||||
arelent ** rel;
|
arelent **rel = relpp;
|
||||||
|
|
||||||
for (rel = relpp; rel < relpp + relcount; rel ++)
|
while (rel < relpp + relcount)
|
||||||
if ((* rel)->howto == NULL)
|
if ((*rel)->howto != NULL)
|
||||||
|
rel++;
|
||||||
|
else
|
||||||
{
|
{
|
||||||
/* Delete eliminated relocs.
|
/* Delete eliminated relocs.
|
||||||
FIXME: There are better ways to do this. */
|
FIXME: There are better ways to do this. */
|
||||||
memmove (rel, rel + 1, ((relcount - (rel - relpp)) - 1) * sizeof (* rel));
|
memmove (rel, rel + 1,
|
||||||
relcount --;
|
((relcount - (rel - relpp)) - 1) * sizeof (*rel));
|
||||||
|
relcount--;
|
||||||
}
|
}
|
||||||
bfd_set_reloc (abfd, sec, relpp, relcount);
|
bfd_set_reloc (abfd, sec, relpp, relcount);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user