Commit 0858d7b0df

LemonBoy <thatlemon@gmail.com>
2020-11-13 20:54:05
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
1 parent a4c8bd8
Changed files (1)
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 });