From: Alexey Tourbin Date: Sat, 18 Feb 2017 13:29:53 +0000 (+0300) Subject: Fixed the check for empty object file vs diagnostics X-Git-Tag: v3.3.5~33 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0ffb141fdc904f3005156cc8e71dd48eeab7c970;p=thirdparty%2Fccache.git Fixed the check for empty object file vs diagnostics The test for diagnostic file currently interferes with the check for empty object file. Since the check for diagnostic file is much more similar to the check for dependency file, I put it there. --- diff --git a/ccache.c b/ccache.c index 4081b0b2f..f039a367a 100644 --- a/ccache.c +++ b/ccache.c @@ -1869,12 +1869,6 @@ from_cache(enum fromcache_call_mode mode, bool put_object_in_manifest) return; } - // Check if the diagnostic file is there. - if (output_dia && stat(cached_dia, &st) != 0) { - cc_log("Diagnostic file %s not in cache", cached_dia); - return; - } - // Occasionally, e.g. on hard reset, our cache ends up as just filesystem // meta-data with no content. Catch an easy case of this. if (st.st_size == 0) { @@ -1910,6 +1904,12 @@ from_cache(enum fromcache_call_mode mode, bool put_object_in_manifest) return; } + // Check if the diagnostic file is there. + if (output_dia && stat(cached_dia, &st) != 0) { + cc_log("Diagnostic file %s not in cache", cached_dia); + return; + } + // Copy object file from cache. Do so also for FissionDwarf file, cached_dwo, // when -gsplit-dwarf is specified. if (!str_eq(output_obj, "/dev/null")) {