diff --git a/lib/std/Build/Step/Compile.zig b/lib/std/Build/Step/Compile.zig index 2d08541545..d06a44c4da 100644 --- a/lib/std/Build/Step/Compile.zig +++ b/lib/std/Build/Step/Compile.zig @@ -221,6 +221,10 @@ generated_llvm_bc: ?*GeneratedFile, generated_llvm_ir: ?*GeneratedFile, generated_h: ?*GeneratedFile, +/// The maximum number of distinct errors within a compilation step +/// Defaults to `std.math.maxInt(u16)` +error_limit: ?u32 = null, + pub const ExpectedCompileErrors = union(enum) { contains: []const u8, exact: []const []const u8, @@ -2092,6 +2096,11 @@ fn make(step: *Step, prog_node: *std.Progress.Node) !void { }); } + if (self.error_limit) |err_limit| try zig_args.appendSlice(&.{ + "--error-limit", + b.fmt("{}", .{err_limit}), + }); + try zig_args.append("--listen=-"); // Windows has an argument length limit of 32,766 characters, macOS 262,144 and Linux