commit 0858d7b0df97abc409370df5094cc93f1f3532ff (tree)
parent a4c8bd8fd46585800c74b78c50a5073ccf877d21
Author: LemonBoy <thatlemon@gmail.com>
Date: Fri, 13 Nov 2020 20:54:05 +0100
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:
1 file changed, 3 insertions(+), 0 deletions(-)
diff --git a/src/Compilation.zig b/src/Compilation.zig
@@ -1798,6 +1798,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 });