From 6257f4abb7c65b034b4c0804cff2623e22b9971d Mon Sep 17 00:00:00 2001 From: Jacob Young Date: Wed, 24 Sep 2025 15:56:07 -0400 Subject: x86_64: improve support for large enums Closes #25247 --- test/behavior/enum.zig | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'test/behavior/enum.zig') diff --git a/test/behavior/enum.zig b/test/behavior/enum.zig index 269fba13ba..8fb5d288e3 100644 --- a/test/behavior/enum.zig +++ b/test/behavior/enum.zig @@ -1065,6 +1065,25 @@ test "tag name with signed enum values" { try expect(mem.eql(u8, @tagName(b), "bravo")); } +test "tag name with large enum values" { + if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; + if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; + + const Kdf = enum(u128) { + aes_kdf = 0xea4f8ac1080d74bf60448a629af3d9c9, + argon2d = 0x0c0ae303a4a9f7914b44298cdf6d63ef, + argon2id = 0xe6a1f0c63efc3db27347db56198b299e, + }; + var kdf: Kdf = .aes_kdf; + try expect(mem.eql(u8, @tagName(kdf), "aes_kdf")); + var argon2d_value: u128 = undefined; + argon2d_value = @intFromEnum(Kdf.argon2d); + kdf = @enumFromInt(argon2d_value); + try expect(mem.eql(u8, @tagName(kdf), "argon2d")); + kdf = .argon2id; + try expect(mem.eql(u8, @tagName(kdf), "argon2id")); +} + test "@tagName in callconv(.c) function" { if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; -- cgit v1.2.3