mirror of
https://codeberg.org/ziglang/zig.git
synced 2025-12-06 13:54:21 +00:00
spirv: make behavior tests passing
This commit is contained in:
parent
e5d900268a
commit
14e3718723
3 changed files with 18 additions and 0 deletions
|
|
@ -1102,6 +1102,9 @@ const DeclGen = struct {
|
||||||
fn constantPtr(self: *DeclGen, ptr_ty: Type, ptr_val: Value) Error!IdRef {
|
fn constantPtr(self: *DeclGen, ptr_ty: Type, ptr_val: Value) Error!IdRef {
|
||||||
const result_ty_ref = try self.resolveType(ptr_ty, .direct);
|
const result_ty_ref = try self.resolveType(ptr_ty, .direct);
|
||||||
const mod = self.module;
|
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) {
|
switch (mod.intern_pool.indexToKey(ptr_val.toIntern()).ptr.addr) {
|
||||||
.decl => |decl| return try self.constantDeclRef(ptr_ty, decl),
|
.decl => |decl| return try self.constantDeclRef(ptr_ty, decl),
|
||||||
.anon_decl => |anon_decl| return try self.constantAnonDeclRef(ptr_ty, anon_decl),
|
.anon_decl => |anon_decl| return try self.constantAnonDeclRef(ptr_ty, anon_decl),
|
||||||
|
|
|
||||||
|
|
@ -946,6 +946,8 @@ test "union that needs padding bytes inside an array" {
|
||||||
}
|
}
|
||||||
|
|
||||||
test "runtime index of array of zero-bit values" {
|
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;
|
var runtime: struct { array: [1]void, index: usize } = undefined;
|
||||||
runtime = .{ .array = .{{}}, .index = 0 };
|
runtime = .{ .array = .{{}}, .index = 0 };
|
||||||
const result = struct { index: usize, value: void }{
|
const result = struct { index: usize, value: void }{
|
||||||
|
|
|
||||||
|
|
@ -268,6 +268,8 @@ test "@fieldParentPtr extern struct" {
|
||||||
}
|
}
|
||||||
|
|
||||||
test "@fieldParentPtr extern struct first zero-bit field" {
|
test "@fieldParentPtr extern struct first zero-bit field" {
|
||||||
|
if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
|
||||||
|
|
||||||
const C = extern struct {
|
const C = extern struct {
|
||||||
a: u0 = 0,
|
a: u0 = 0,
|
||||||
b: f32 = 3.14,
|
b: f32 = 3.14,
|
||||||
|
|
@ -369,6 +371,8 @@ test "@fieldParentPtr extern struct first zero-bit field" {
|
||||||
}
|
}
|
||||||
|
|
||||||
test "@fieldParentPtr extern struct middle zero-bit field" {
|
test "@fieldParentPtr extern struct middle zero-bit field" {
|
||||||
|
if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
|
||||||
|
|
||||||
const C = extern struct {
|
const C = extern struct {
|
||||||
a: f32 = 3.14,
|
a: f32 = 3.14,
|
||||||
b: u0 = 0,
|
b: u0 = 0,
|
||||||
|
|
@ -470,6 +474,8 @@ test "@fieldParentPtr extern struct middle zero-bit field" {
|
||||||
}
|
}
|
||||||
|
|
||||||
test "@fieldParentPtr extern struct last zero-bit field" {
|
test "@fieldParentPtr extern struct last zero-bit field" {
|
||||||
|
if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
|
||||||
|
|
||||||
const C = extern struct {
|
const C = extern struct {
|
||||||
a: f32 = 3.14,
|
a: f32 = 3.14,
|
||||||
b: i32 = 12345,
|
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_c) return error.SkipZigTest;
|
||||||
if (builtin.zig_backend == .stage2_llvm) 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_wasm) return error.SkipZigTest;
|
||||||
|
if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
|
||||||
|
|
||||||
const C = packed struct {
|
const C = packed struct {
|
||||||
a: bool = true,
|
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_c) return error.SkipZigTest;
|
||||||
if (builtin.zig_backend == .stage2_llvm) 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_wasm) return error.SkipZigTest;
|
||||||
|
if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
|
||||||
|
|
||||||
const C = packed struct {
|
const C = packed struct {
|
||||||
a: f32 = 3.14,
|
a: f32 = 3.14,
|
||||||
|
|
@ -847,6 +855,7 @@ test "@fieldParentPtr aligned packed struct" {
|
||||||
test "@fieldParentPtr nested packed struct" {
|
test "@fieldParentPtr nested packed struct" {
|
||||||
if (builtin.zig_backend == .stage2_llvm) 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_wasm) return error.SkipZigTest;
|
||||||
|
if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
|
||||||
|
|
||||||
{
|
{
|
||||||
const C = packed struct {
|
const C = packed struct {
|
||||||
|
|
@ -1008,6 +1017,7 @@ test "@fieldParentPtr nested packed struct" {
|
||||||
test "@fieldParentPtr packed struct first zero-bit field" {
|
test "@fieldParentPtr packed struct first zero-bit field" {
|
||||||
if (builtin.zig_backend == .stage2_llvm) 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_wasm) return error.SkipZigTest;
|
||||||
|
if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
|
||||||
|
|
||||||
const C = packed struct {
|
const C = packed struct {
|
||||||
a: u0 = 0,
|
a: u0 = 0,
|
||||||
|
|
@ -1112,6 +1122,7 @@ test "@fieldParentPtr packed struct first zero-bit field" {
|
||||||
test "@fieldParentPtr packed struct middle 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_llvm) return error.SkipZigTest;
|
||||||
if (builtin.zig_backend == .stage2_wasm) 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 {
|
const C = packed struct {
|
||||||
a: f32 = 3.14,
|
a: f32 = 3.14,
|
||||||
|
|
@ -1216,6 +1227,7 @@ test "@fieldParentPtr packed struct middle zero-bit field" {
|
||||||
test "@fieldParentPtr packed struct last 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_llvm) return error.SkipZigTest;
|
||||||
if (builtin.zig_backend == .stage2_wasm) 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 {
|
const C = packed struct {
|
||||||
a: f32 = 3.14,
|
a: f32 = 3.14,
|
||||||
|
|
@ -1718,6 +1730,7 @@ test "@fieldParentPtr extern union" {
|
||||||
|
|
||||||
test "@fieldParentPtr packed union" {
|
test "@fieldParentPtr packed union" {
|
||||||
if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
|
if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest;
|
||||||
|
if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
|
||||||
|
|
||||||
const C = packed union {
|
const C = packed union {
|
||||||
a: bool,
|
a: bool,
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue