From dd7ffd3f1e927118518e8b6e02682934df95374c Mon Sep 17 00:00:00 2001 From: "peterbudai@hotmail.com" Date: Fri, 16 Mar 2018 23:54:16 +0100 Subject: [PATCH] direct .i mode: Don't create tmp.cpp_stderr file at all Create tmp file only when it's actually needed. --- src/ccache.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) 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)); } -- 2.47.2