authorgravatar for 28024277+tjog@users.noreply.github.comtjog <28024277+tjog@users.noreply.github.com> 2024-02-13 21:08:13+01:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2024-02-15 00:00:06-08:00
logc280811d1d5b5d73e1eb4243c577f86375447e99
tree976d7251aaf651c37415789bebef491c5b5c235e
parent7e83e7d9a8c77e875090174b167fd2d376574087

std.Build: fix wrong variable used in `parseTargetQuery`

Also address clobbering diagnostics field with an assert and doc comment to use the Target.Query.parse function themselves. Fixes #18876

1 files changed, 6 insertions(+), 1 deletions(-)

lib/std/Build.zig+6-1
...@@ -1284,11 +1284,16 @@ pub fn standardTargetOptions(b: *Build, args: StandardTargetOptionsArgs) Resolve...@@ -1284,11 +1284,16 @@ pub fn standardTargetOptions(b: *Build, args: StandardTargetOptionsArgs) Resolve
1284 return b.resolveTargetQuery(query);1284 return b.resolveTargetQuery(query);
1285}1285}
12861286
1287/// Obtain a target query from a string, reporting diagnostics to stderr if the
1288/// parsing failed.
1289/// Asserts that the `diagnostics` field of `options` is `null`. This use case
1290/// is handled instead by calling `std.Target.Query.parse` directly.
1287pub fn parseTargetQuery(options: std.Target.Query.ParseOptions) error{ParseFailed}!std.Target.Query {1291pub fn parseTargetQuery(options: std.Target.Query.ParseOptions) error{ParseFailed}!std.Target.Query {
1292 assert(options.diagnostics == null);
1288 var diags: Target.Query.ParseOptions.Diagnostics = .{};1293 var diags: Target.Query.ParseOptions.Diagnostics = .{};
1289 var opts_copy = options;1294 var opts_copy = options;
1290 opts_copy.diagnostics = &diags;1295 opts_copy.diagnostics = &diags;
1291 return std.Target.Query.parse(options) catch |err| switch (err) {1296 return std.Target.Query.parse(opts_copy) catch |err| switch (err) {
1292 error.UnknownCpuModel => {1297 error.UnknownCpuModel => {
1293 std.debug.print("unknown CPU: '{s}'\navailable CPUs for architecture '{s}':\n", .{1298 std.debug.print("unknown CPU: '{s}'\navailable CPUs for architecture '{s}':\n", .{
1294 diags.cpu_name.?, @tagName(diags.arch.?),1299 diags.cpu_name.?, @tagName(diags.arch.?),