diff --git a/src/codegen/spirv.zig b/src/codegen/spirv.zig index 22aa9e7df0..aeede443bf 100644 --- a/src/codegen/spirv.zig +++ b/src/codegen/spirv.zig @@ -2821,6 +2821,7 @@ const NavGen = struct { /// TODO is to also write out the error as a function call parameter, and to somehow fetch /// the name of an error in the text executor. fn generateTestEntryPoint(self: *NavGen, name: []const u8, spv_test_decl_index: SpvModule.Decl.Index) !void { + const zcu = self.pt.zcu; const target = self.spv.target; const anyerror_ty_id = try self.resolveType(Type.anyerror, .direct); @@ -2950,7 +2951,7 @@ const NavGen = struct { .pointer = p_error_id, .object = error_id, .memory_access = .{ - .Aligned = .{ .literal_integer = @sizeOf(u16) }, + .Aligned = .{ .literal_integer = @intCast(Type.abiAlignment(.anyerror, zcu).toByteUnits().?) }, }, }); try section.emit(self.spv.gpa, .OpReturn, {}); diff --git a/test/behavior.zig b/test/behavior.zig index 29a0e11729..8006d8364d 100644 --- a/test/behavior.zig +++ b/test/behavior.zig @@ -140,6 +140,8 @@ test { // This bug only repros in the root file test "deference @embedFile() of a file full of zero bytes" { + if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; + const contents = @embedFile("behavior/zero.bin").*; try @import("std").testing.expect(contents.len == 456); for (contents) |byte| try @import("std").testing.expect(byte == 0); diff --git a/test/behavior/floatop.zig b/test/behavior/floatop.zig index 1225e312e6..77fa4c593f 100644 --- a/test/behavior/floatop.zig +++ b/test/behavior/floatop.zig @@ -133,6 +133,7 @@ test "cmp f16" { } test "cmp f32" { + if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO if (builtin.cpu.arch.isArm() and builtin.target.abi.float() == .soft) return error.SkipZigTest; // https://github.com/ziglang/zig/issues/21234 if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest; @@ -142,6 +143,7 @@ test "cmp f32" { } test "cmp f64" { + if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_x86_64 and builtin.target.ofmt != .elf and builtin.target.ofmt != .macho) return error.SkipZigTest; if (builtin.cpu.arch.isArm() and builtin.target.abi.float() == .soft) return error.SkipZigTest; // https://github.com/ziglang/zig/issues/21234 @@ -245,6 +247,7 @@ test "vector cmp f16" { } test "vector cmp f32" { + if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest;