bfdtest1 loop check

Add a check that next_archived_file doesn't return the same element.
Seen with the following, which I think shows a bug with "ar r" and
thin archives as you get two copies of artest.a in artest2.a.

$ rm tmpdir/artest*
$ ./ar rc tmpdir/artest.a tmpdir/bintest.o
$ ./ar rcT tmpdir/artest2.a tmpdir/artest.a
$ ./bfdtest1 tmpdir/artest.a
$ ./bfdtest1 tmpdir/artest2.a
$ ./ar rcT tmpdir/artest2.a tmpdir/artest.a
$ ./bfdtest1 tmpdir/artest2.a
oops: next_archived_file
This commit is contained in:
Alan Modra
2025-01-01 22:51:44 +10:30
parent bc67f5df70
commit c5e10fb2eb

View File

@@ -53,6 +53,8 @@ main (int argc, char **argv)
last = next)
{
next = bfd_openr_next_archived_file (archive, last);
if (next == last)
die ("next_archived_file");
bfd_close (last);
count++;
}
@@ -62,6 +64,8 @@ main (int argc, char **argv)
last = next)
{
next = bfd_openr_next_archived_file (archive, last);
if (next == last)
die ("next_archived_file");
bfd_close (last);
count--;
}