diff options
| author | Ryan Liptak <squeek502@hotmail.com> | 2023-09-22 15:55:19 -0700 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2023-09-23 11:01:02 -0700 |
| commit | 865b2e259bf78dbf1d4c1051b5fff68b90bca65f (patch) | |
| tree | de416537f668fbcabd9195485b741094c4f33541 /src | |
| parent | ce919ccf45951856a762ffdb8ef850301cd8c588 (diff) | |
| download | zig-865b2e259bf78dbf1d4c1051b5fff68b90bca65f.tar.gz zig-865b2e259bf78dbf1d4c1051b5fff68b90bca65f.zip | |
Fix reportRetryableWin32ResourceError
Follow up to https://github.com/ziglang/zig/pull/17069.
This TODO being left in was a complete oversight.
Before, any 'retryable' error would hit:
error: thread 2920 panic: access of union field 'success' while field 'failure_retryable' is active
Now, it will be reported/handled properly:
C:\Users\Ryan\Programming\Zig\zig\test\standalone\windows_resources\res\zig.rc:1:1: error: FileNotFound
Diffstat (limited to 'src')
| -rw-r--r-- | src/Compilation.zig | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/src/Compilation.zig b/src/Compilation.zig index 57504d97ab..416f173963 100644 --- a/src/Compilation.zig +++ b/src/Compilation.zig @@ -4056,9 +4056,26 @@ fn reportRetryableWin32ResourceError( ) error{OutOfMemory}!void { win32_resource.status = .failure_retryable; - // TODO: something - _ = comp; - _ = @errorName(err); + var bundle: ErrorBundle.Wip = undefined; + try bundle.init(comp.gpa); + errdefer bundle.deinit(); + try bundle.addRootErrorMessage(.{ + .msg = try bundle.printString("{s}", .{@errorName(err)}), + .src_loc = try bundle.addSourceLocation(.{ + .src_path = try bundle.addString(win32_resource.src.src_path), + .line = 0, + .column = 0, + .span_start = 0, + .span_main = 0, + .span_end = 0, + }), + }); + const finished_bundle = try bundle.toOwnedBundle(""); + { + comp.mutex.lock(); + defer comp.mutex.unlock(); + try comp.failed_win32_resources.putNoClobber(comp.gpa, win32_resource, finished_bundle); + } } fn reportRetryableAstGenError( |
