BR 3392529: if the default output name is the same as input -> nasm.out

If no output filename is specified, then a default filename is used
based on the input filename. If that ends up the *same* as the input
filename, change the output filename to "nasm.out".

Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
This commit is contained in:
H. Peter Anvin (Intel) 2018-11-20 10:56:57 -08:00
parent bf6230baa9
commit 7b6371b9d3

View File

@ -514,9 +514,14 @@ int main(int argc, char **argv)
* is a preprocess mode, we're perfectly
* fine to output into stdout.
*/
if (!outname) {
if (!(operating_mode & OP_PREPROCESS))
outname = filename_set_extension(inname, ofmt->extension);
if (!outname && !(operating_mode & OP_PREPROCESS)) {
outname = filename_set_extension(inname, ofmt->extension);
if (!strcmp(outname, inname)) {
outname = "nasm.out";
nasm_error(ERR_WARNING,
"default output file same as input, using `%s' for output\n",
inname, outname);
}
}
depend_ptr = (depend_file || (operating_mode & OP_DEPEND))