authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2026-05-20 12:26:44-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2026-05-25 18:54:36-07:00
logb991b868ae2d6719dbe2e36f95c6d2cb799d8810
tree3ed6f193f9bbea7d1fcf54cf979324917b6db219
parent88ae1d9aeca6441f2c905bbde61d399025c63242

Configuration: prevent ObjectFormat enum mismatch


1 files changed, 12 insertions(+), 2 deletions(-)

lib/std/Build/Configuration.zig+12-2
...@@ -2437,6 +2437,7 @@ pub const TargetQuery = struct {...@@ -2437,6 +2437,7 @@ pub const TargetQuery = struct {
2437 };2437 };
2438 }2438 }
2439 };2439 };
2440
2440 pub const ObjectFormat = enum(u4) {2441 pub const ObjectFormat = enum(u4) {
2441 c,2442 c,
2442 coff,2443 coff,
...@@ -2451,8 +2452,17 @@ pub const TargetQuery = struct {...@@ -2451,8 +2452,17 @@ pub const TargetQuery = struct {
2451 default,2452 default,
24522453
2453 pub fn init(x: ?std.Target.ObjectFormat) @This() {2454 pub fn init(x: ?std.Target.ObjectFormat) @This() {
2454 // TODO comptime assert the enums match2455 return switch (x orelse return .default) {
2455 return @enumFromInt(@intFromEnum(x orelse return .default));2456 .c => .c,
2457 .coff => .coff,
2458 .elf => .elf,
2459 .hex => .hex,
2460 .macho => .macho,
2461 .plan9 => .plan9,
2462 .raw => .raw,
2463 .spirv => .spirv,
2464 .wasm => .wasm,
2465 };
2456 }2466 }
24572467
2458 pub fn unwrap(this: @This()) ?std.Target.ObjectFormat {2468 pub fn unwrap(this: @This()) ?std.Target.ObjectFormat {