mirror of
https://github.com/ziglang/zig.git
synced 2026-02-10 19:41:16 +00:00
Compilation: fix crash in the compile error system
There is a table of `misc_failures` which previously did not allow multiple errors for the same enum tag. Now it allows this by freeing the previous compile error and replacing it with the new one. Typically this will happen because multiple sub-Compilation objects fail with the same problem, such as not being able to build glibc because of not having LLVM extensions enabled.
This commit is contained in:
parent
e494ce7604
commit
6504c57176
@ -3849,7 +3849,11 @@ fn setMiscFailure(
|
||||
) Allocator.Error!void {
|
||||
try comp.misc_failures.ensureUnusedCapacity(comp.gpa, 1);
|
||||
const msg = try std.fmt.allocPrint(comp.gpa, format, args);
|
||||
comp.misc_failures.putAssumeCapacityNoClobber(tag, .{ .msg = msg });
|
||||
const gop = comp.misc_failures.getOrPutAssumeCapacity(tag);
|
||||
if (gop.found_existing) {
|
||||
gop.value_ptr.deinit(comp.gpa);
|
||||
}
|
||||
gop.value_ptr.* = .{ .msg = msg };
|
||||
}
|
||||
|
||||
pub fn dump_argv(argv: []const []const u8) void {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user