| ... | ... | @@ -4568,7 +4568,10 @@ fn updateCObject(comp: *Compilation, c_object: *CObject, c_obj_prog_node: *std.P |
| 4568 | 4568 | // We can't know the digest until we do the C compiler invocation, |
| 4569 | 4569 | // so we need a temporary filename. |
| 4570 | 4570 | const out_obj_path = try comp.tmpFilePath(arena, o_basename); |
| 4571 | | const out_diag_path = try std.fmt.allocPrint(arena, "{s}.diag", .{out_obj_path}); |
| 4571 | const out_diag_path = if (comp.clang_passthrough_mode) |
| 4572 | undefined |
| 4573 | else |
| 4574 | try std.fmt.allocPrint(arena, "{s}.diag", .{out_obj_path}); |
| 4572 | 4575 | var zig_cache_tmp_dir = try comp.local_cache_directory.handle.makeOpenPath("tmp", .{}); |
| 4573 | 4576 | defer zig_cache_tmp_dir.close(); |
| 4574 | 4577 | |
| ... | ... | @@ -4603,6 +4606,13 @@ fn updateCObject(comp: *Compilation, c_object: *CObject, c_obj_prog_node: *std.P |
| 4603 | 4606 | dump_argv(argv.items); |
| 4604 | 4607 | } |
| 4605 | 4608 | |
| 4609 | // Just to save disk space, we delete the files that are never needed again. |
| 4610 | defer if (!comp.clang_passthrough_mode) zig_cache_tmp_dir.deleteFile(std.fs.path.basename(out_diag_path)) catch |err| { |
| 4611 | log.warn("failed to delete '{s}': {s}", .{ out_diag_path, @errorName(err) }); |
| 4612 | }; |
| 4613 | defer if (out_dep_path) |dep_file_path| zig_cache_tmp_dir.deleteFile(std.fs.path.basename(dep_file_path)) catch |err| { |
| 4614 | log.warn("failed to delete '{s}': {s}", .{ dep_file_path, @errorName(err) }); |
| 4615 | }; |
| 4606 | 4616 | if (std.process.can_spawn) { |
| 4607 | 4617 | var child = std.ChildProcess.init(argv.items, arena); |
| 4608 | 4618 | if (comp.clang_passthrough_mode) { |
| ... | ... | @@ -4643,9 +4653,6 @@ fn updateCObject(comp: *Compilation, c_object: *CObject, c_obj_prog_node: *std.P |
| 4643 | 4653 | log.err("{}: failed to parse clang diagnostics: {s}", .{ err, stderr }); |
| 4644 | 4654 | return comp.failCObj(c_object, "clang exited with code {d}", .{code}); |
| 4645 | 4655 | }; |
| 4646 | | zig_cache_tmp_dir.deleteFile(out_diag_path) catch |err| { |
| 4647 | | log.warn("failed to delete '{s}': {s}", .{ out_diag_path, @errorName(err) }); |
| 4648 | | }; |
| 4649 | 4656 | return comp.failCObjWithOwnedDiagBundle(c_object, bundle); |
| 4650 | 4657 | } |
| 4651 | 4658 | }, |
| ... | ... | @@ -4685,10 +4692,6 @@ fn updateCObject(comp: *Compilation, c_object: *CObject, c_obj_prog_node: *std.P |
| 4685 | 4692 | }, |
| 4686 | 4693 | .incremental => {}, |
| 4687 | 4694 | } |
| 4688 | | // Just to save disk space, we delete the file because it is never needed again. |
| 4689 | | zig_cache_tmp_dir.deleteFile(dep_basename) catch |err| { |
| 4690 | | log.warn("failed to delete '{s}': {s}", .{ dep_file_path, @errorName(err) }); |
| 4691 | | }; |
| 4692 | 4695 | } |
| 4693 | 4696 | |
| 4694 | 4697 | // We don't actually care whether it's a cache hit or miss; we just need the digest and the lock. |
| ... | ... | @@ -4924,10 +4927,6 @@ fn updateWin32Resource(comp: *Compilation, win32_resource: *Win32Resource, win32 |
| 4924 | 4927 | .incremental => {}, |
| 4925 | 4928 | } |
| 4926 | 4929 | } |
| 4927 | | // Just to save disk space, we delete the file because it is never needed again. |
| 4928 | | zig_cache_tmp_dir.deleteFile(dep_basename) catch |err| { |
| 4929 | | log.warn("failed to delete '{s}': {s}", .{ out_dep_path, @errorName(err) }); |
| 4930 | | }; |
| 4931 | 4930 | } |
| 4932 | 4931 | |
| 4933 | 4932 | // Rename into place. |