spirv: make behavior tests passing

This commit is contained in:
Ali Chraghi 2024-04-05 00:13:48 +03:30
parent e5d900268a
commit 14e3718723
3 changed files with 18 additions and 0 deletions

View file

@ -1102,6 +1102,9 @@ const DeclGen = struct {
fn constantPtr(self: *DeclGen, ptr_ty: Type, ptr_val: Value) Error!IdRef {
const result_ty_ref = try self.resolveType(ptr_ty, .direct);
const mod = self.module;
if (ptr_val.isUndef(mod)) return self.spv.constUndef(result_ty_ref);
switch (mod.intern_pool.indexToKey(ptr_val.toIntern()).ptr.addr) {
.decl => |decl| return try self.constantDeclRef(ptr_ty, decl),
.anon_decl => |anon_decl| return try self.constantAnonDeclRef(ptr_ty, anon_decl),

View file

@ -946,6 +946,8 @@ test "union that needs padding bytes inside an array" {
}
test "runtime index of array of zero-bit values" {
if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
var runtime: struct { array: [1]void, index: usize } = undefined;
runtime = .{ .array = .{{}}, .index = 0 };
const result = struct { index: usize, value: void }{

View file

@ -268,6 +268,8 @@ test "@fieldParentPtr extern struct" {
}
test "@fieldParentPtr extern struct first zero-bit field" {
if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
const C = extern struct {
a: u0 = 0,
b: f32 = 3.14,
@ -369,6 +371,8 @@ test "@fieldParentPtr extern struct first zero-bit field" {
}
test "@fieldParentPtr extern struct middle zero-bit field" {
if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
const C = extern struct {
a: f32 = 3.14,
b: u0 = 0,
@ -470,6 +474,8 @@ test "@fieldParentPtr extern struct middle zero-bit field" {
}
test "@fieldParentPtr extern struct last zero-bit field" {
if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
const C = extern struct {
a: f32 = 3.14,
b: i32 = 12345,
@ -574,6 +580,7 @@ test "@fieldParentPtr unaligned packed struct" {
if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;
if (builtin.zig_backend == .stage2_llvm) return error.SkipZigTest;
if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
const C = packed struct {
a: bool = true,
@ -711,6 +718,7 @@ test "@fieldParentPtr aligned packed struct" {
if (builtin.zig_backend == .stage2_c) return error.SkipZigTest;
if (builtin.zig_backend == .stage2_llvm) return error.SkipZigTest;
if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
const C = packed struct {
a: f32 = 3.14,
@ -847,6 +855,7 @@ test "@fieldParentPtr aligned packed struct" {
test "@fieldParentPtr nested packed struct" {
if (builtin.zig_backend == .stage2_llvm) return error.SkipZigTest;
if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
{
const C = packed struct {
@ -1008,6 +1017,7 @@ test "@fieldParentPtr nested packed struct" {
test "@fieldParentPtr packed struct first zero-bit field" {
if (builtin.zig_backend == .stage2_llvm) return error.SkipZigTest;
if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
const C = packed struct {
a: u0 = 0,
@ -1112,6 +1122,7 @@ test "@fieldParentPtr packed struct first zero-bit field" {
test "@fieldParentPtr packed struct middle zero-bit field" {
if (builtin.zig_backend == .stage2_llvm) return error.SkipZigTest;
if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
const C = packed struct {
a: f32 = 3.14,
@ -1216,6 +1227,7 @@ test "@fieldParentPtr packed struct middle zero-bit field" {
test "@fieldParentPtr packed struct last zero-bit field" {
if (builtin.zig_backend == .stage2_llvm) return error.SkipZigTest;
if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
const C = packed struct {
a: f32 = 3.14,
@ -1718,6 +1730,7 @@ test "@fieldParentPtr extern union" {
test "@fieldParentPtr packed union" {
if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
const C = packed union {
a: bool,