From 120334830231763bd3cb84fe6fb671142161f6de Mon Sep 17 00:00:00 2001 From: Kirill Smelkov Date: Sun, 20 Jun 2010 20:42:16 +0400 Subject: [PATCH] tcc -E: Let output_default be .o instead of a.out This affectes where `tcc -E -MD file.c` will place generated dependency information -- previously, for `tcc -E` output_default was a.out, and so deps were put into a.d . Avoid this behaviour, by treating `tcc -E` as `tcc -c` with respect to output_default computation. This will not hurt anything else (preprocessor outputs to either stdout, or to explicitely given (-o ) destination, so no default filename is used here), and on the other hand `tcc -E -MD file.c` now puts dependencies into file.d (the same behaviour as for gcc -E). v2: - restructured condition a bit to make it more clear --- libtcc.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libtcc.c b/libtcc.c index 92c7cad8..49ba8c14 100644 --- a/libtcc.c +++ b/libtcc.c @@ -1583,7 +1583,9 @@ LIBTCCAPI const char *tcc_default_target(TCCState *s) strcpy(ext, ".exe"); else #endif - if (s->output_type == TCC_OUTPUT_OBJ && !s->reloc_output && *ext) + if (( (s->output_type == TCC_OUTPUT_OBJ && !s->reloc_output) || + (s->output_type == TCC_OUTPUT_PREPROCESS) ) + && *ext) strcpy(ext, ".o"); else pstrcpy(outfile_default, sizeof(outfile_default), "a.out"); -- 2.11.4.GIT