srctree

Ali Chraghi parent e5d90026 14e37187
spirv: make behavior tests passing

inlinesplit
src/codegen/spirv.zig added: 21, removed: 3, total 18
@@ -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),
 
test/behavior/array.zig added: 21, removed: 3, total 18
@@ -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 }{
 
test/behavior/field_parent_ptr.zig added: 21, removed: 3, total 18
@@ -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,