From 0858d7b0df97abc409370df5094cc93f1f3532ff Mon Sep 17 00:00:00 2001 From: LemonBoy Date: Fri, 13 Nov 2020 20:54:05 +0100 Subject: [PATCH] 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 --- src/Compilation.zig | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/Compilation.zig b/src/Compilation.zig index 0747fb4ba1..274047f5a9 100644 --- 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 });