aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLemonBoy <thatlemon@gmail.com>2020-11-13 20:54:05 +0100
committerAndrew Kelley <andrew@ziglang.org>2020-12-01 16:52:28 -0700
commitc91c4dc25696224fd1d15d5b5fbf9698c8a77272 (patch)
treecf0d23d432c7b73d21ac08c8cfa524fb98741f1a /src
parent5b5097a22a380a93a0f205ba218e8290a42ad051 (diff)
downloadzig-c91c4dc25696224fd1d15d5b5fbf9698c8a77272.tar.gz
zig-c91c4dc25696224fd1d15d5b5fbf9698c8a77272.zip
stage2: Create cache manifest before calling final
If we enter the `if` because `comp.disable_c_depfile` is false the `man` object has no manifest and calling .final on it will trip an assertion. Closes #7096
Diffstat (limited to 'src')
-rw-r--r--src/Compilation.zig3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/Compilation.zig b/src/Compilation.zig
index 91a1915029..8b80e61662 100644
--- a/src/Compilation.zig
+++ b/src/Compilation.zig
@@ -1818,6 +1818,9 @@ fn updateCObject(comp: *Compilation, c_object: *CObject, c_comp_progress_node: *
};
}
+ // We don't actually care whether it's a cache hit or miss; we just need the digest and the lock.
+ if (comp.disable_c_depfile) _ = try man.hit();
+
// Rename into place.
const digest = man.final();
const o_sub_path = try std.fs.path.join(arena, &[_][]const u8{ "o", &digest });