From: peterbudai@hotmail.com Date: Fri, 16 Mar 2018 22:54:16 +0000 (+0100) Subject: direct .i mode: Don't create tmp.cpp_stderr file at all X-Git-Tag: v3.4.2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=dd7ffd3f1e927118518e8b6e02682934df95374c;p=thirdparty%2Fccache.git direct .i mode: Don't create tmp.cpp_stderr file at all Create tmp file only when it's actually needed. --- diff --git a/src/ccache.c b/src/ccache.c index afa7adc5d..277b55b41 100644 --- a/src/ccache.c +++ b/src/ccache.c @@ -1355,10 +1355,7 @@ get_object_name_from_cpp(struct args *args, struct mdfour *hash) { time_of_compilation = time(NULL); - char *path_stderr = format("%s/tmp.cpp_stderr", temp_dir()); - int path_stderr_fd = create_tmp_fd(&path_stderr); - add_pending_tmp_file(path_stderr); - + char *path_stderr = NULL; char *path_stdout; int status; if (direct_i_file) { @@ -1384,6 +1381,10 @@ get_object_name_from_cpp(struct args *args, struct mdfour *hash) int path_stdout_fd = create_tmp_fd(&path_stdout); add_pending_tmp_file(path_stdout); + path_stderr = format("%s/tmp.cpp_stderr", temp_dir()); + int path_stderr_fd = create_tmp_fd(&path_stderr); + add_pending_tmp_file(path_stderr); + int args_added = 2; args_add(args, "-E"); if (conf->keep_comments_cpp) { @@ -1427,7 +1428,7 @@ get_object_name_from_cpp(struct args *args, struct mdfour *hash) } hash_delimiter(hash, "cppstderr"); - if (!hash_file(hash, path_stderr)) { + if (!direct_i_file && !hash_file(hash, path_stderr)) { fatal("Failed to open %s: %s", path_stderr, strerror(errno)); }