X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gas%2Foutput-file.c;h=573598101c33ffe9adebf30b21b1e27e8424ad68;hb=1a20473059c7a088b9f3c4188c09976eebbc3ab4;hp=9603dc4f38a0ccc30987b2e32a26a3fc8dc72597;hpb=df3ca5a38ec2bdf53f5f42abb1a4b376ba414302;p=deliverable%2Fbinutils-gdb.git diff --git a/gas/output-file.c b/gas/output-file.c index 9603dc4f38..573598101c 100644 --- a/gas/output-file.c +++ b/gas/output-file.c @@ -1,12 +1,11 @@ /* output-file.c - Deal with the output file - Copyright 1987, 1990, 1991, 1992, 1993, 1994, 1996, 1998, 1999, 2001, - 2003, 2004, 2005, 2006 Free Software Foundation, Inc. + Copyright (C) 1987-2020 Free Software Foundation, Inc. This file is part of GAS, the GNU Assembler. GAS 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 2, or (at your option) + the Free Software Foundation; either version 3, or (at your option) any later version. GAS is distributed in the hope that it will be useful, @@ -29,7 +28,7 @@ bfd *stdoutput; void -output_file_create (char *name) +output_file_create (const char *name) { if (name[0] == '-' && name[1] == '\0') as_fatal (_("can't open a bfd on stdout %s"), name); @@ -51,15 +50,18 @@ output_file_create (char *name) } void -output_file_close (char *filename) +output_file_close (const char *filename) { bfd_boolean res; if (stdoutput == NULL) return; - + /* Close the bfd. */ - res = bfd_close (stdoutput); + if (!flag_always_generate_output && had_errors ()) + res = bfd_cache_close_all (); + else + res = bfd_close (stdoutput); /* Prevent an infinite loop - if the close failed we will call as_fatal which will call xexit() which may call this function again... */