diff options
Diffstat (limited to 'binutils/bfdtest1.c')
-rw-r--r-- | binutils/bfdtest1.c | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/binutils/bfdtest1.c b/binutils/bfdtest1.c new file mode 100644 index 0000000..b246a04 --- /dev/null +++ b/binutils/bfdtest1.c @@ -0,0 +1,68 @@ +/* A program to test BFD. + Copyright 2012 Free Software Foundation, Inc. + + This file is part of the GNU Binutils. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, + MA 02110-1301, USA. */ + +#include "sysdep.h" +#include "bfd.h" + +static void +die (const char *s) +{ + printf ("oops: %s\n", s); + exit (1); +} + +int +main (int argc, char **argv) +{ + bfd *archive; + bfd *last, *next; + + if (argc != 2) + die ("bad usage"); + + archive = bfd_openr (argv[1], NULL); + + if (!bfd_check_format (archive, bfd_archive)) + { + bfd_close (archive); + die ("bfd_check_format"); + } + + for (last = bfd_openr_next_archived_file (archive, NULL); + last; + last = next) + { + next = bfd_openr_next_archived_file (archive, last); + bfd_close (last); + } + + for (last = bfd_openr_next_archived_file (archive, NULL); + last; + last = next) + { + next = bfd_openr_next_archived_file (archive, last); + bfd_close (last); + } + + if (!bfd_close (archive)) + die ("bfd_close"); + + return 0; +} |