diff options
author | Alan Modra <amodra@gmail.com> | 2025-01-01 22:51:44 +1030 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2025-01-01 22:51:44 +1030 |
commit | c5e10fb2eb81573f004aff454a81b2ef4f06a3ae (patch) | |
tree | 9aa2101699682e4325bd7cba65ea6a680862d02b | |
parent | bc67f5df706ff54348b386669cadd686cdae0e71 (diff) | |
download | gdb-c5e10fb2eb81573f004aff454a81b2ef4f06a3ae.zip gdb-c5e10fb2eb81573f004aff454a81b2ef4f06a3ae.tar.gz gdb-c5e10fb2eb81573f004aff454a81b2ef4f06a3ae.tar.bz2 |
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
-rw-r--r-- | binutils/bfdtest1.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/binutils/bfdtest1.c b/binutils/bfdtest1.c index 9714998..ef68732 100644 --- a/binutils/bfdtest1.c +++ b/binutils/bfdtest1.c @@ -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--; } |