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
This commit is contained in:
LemonBoy 2020-11-13 20:54:05 +01:00 committed by Andrew Kelley
parent 5b5097a22a
commit c91c4dc256

View File

@ -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 });