diff --git a/src/codegen/spirv.zig b/src/codegen/spirv.zig index d7ab7ed4e0..6e95db9a68 100644 --- a/src/codegen/spirv.zig +++ b/src/codegen/spirv.zig @@ -369,6 +369,17 @@ pub const DeclGen = struct { .composite_integer, }; }, + .Enum => blk: { + var buffer: Type.Payload.Bits = undefined; + const int_ty = ty.intTagType(&buffer); + const int_info = int_ty.intInfo(target); + break :blk ArithmeticTypeInfo{ + .bits = int_info.bits, + .is_vector = false, + .signedness = int_info.signedness, + .class = .integer, + }; + }, // As of yet, there is no vector support in the self-hosted compiler. .Vector => self.todo("implement arithmeticTypeInfo for Vector", .{}), // TODO: For which types is this the case? diff --git a/test/behavior/enum.zig b/test/behavior/enum.zig index a9322ec1b2..097caaad19 100644 --- a/test/behavior/enum.zig +++ b/test/behavior/enum.zig @@ -27,7 +27,6 @@ const IntToEnumNumber = enum { Zero, One, Two, Three, Four }; test "int to enum" { if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO - if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; try testIntToEnumEval(3); } @@ -576,8 +575,6 @@ test "enum literal equality" { } test "enum literal cast to enum" { - if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; - const Color = enum { Auto, Off, On }; var color1: Color = .Auto; @@ -874,8 +871,6 @@ test "switch on enum with one member is comptime-known" { } test "method call on an enum" { - if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; - const S = struct { const E = enum { one, diff --git a/test/behavior/union.zig b/test/behavior/union.zig index 26a5d060df..29c93600a2 100644 --- a/test/behavior/union.zig +++ b/test/behavior/union.zig @@ -366,7 +366,6 @@ test "simple union(enum(u32))" { if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO - if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; var x = MultipleChoice.C; try expect(x == MultipleChoice.C);