authorgravatar for robin@voetter.nlRobin Voetter <robin@voetter.nl> 2023-09-23 01:46:00+02:00
committergravatar for robin@voetter.nlRobin Voetter <robin@voetter.nl> 2023-10-15 13:59:22+02:00
loga7c3d5e4ec551e48166919ab55f618afe7c23b2a
tree75b3c4ab5a92a8877909e3ef1e590d9703e2de56
parent4ea361f6dc07826337255fdddcbdfca9b8c9a0a9
signaturebadge-check Signed by SSH key SHA256:CQ99aPxq+RueiL9u7z0FEki5Fm7V6T8q4PrEGmINrA4

spirv: constant elem ptr fix


2 files changed, 4 insertions(+), 4 deletions(-)

src/codegen/spirv.zig+4-3
...@@ -784,11 +784,12 @@ pub const DeclGen = struct {...@@ -784,11 +784,12 @@ pub const DeclGen = struct {
784 .opt_payload => unreachable, // TODO784 .opt_payload => unreachable, // TODO
785 .comptime_field => unreachable,785 .comptime_field => unreachable,
786 .elem => |elem_ptr| {786 .elem => |elem_ptr| {
787 const elem_ptr_ty = mod.intern_pool.typeOf(elem_ptr.base).toType();787 const parent_ptr_ty = mod.intern_pool.typeOf(elem_ptr.base).toType();
788 const parent_ptr_id = try self.constantPtr(elem_ptr_ty, elem_ptr.base.toValue());788 const parent_ptr_id = try self.constantPtr(parent_ptr_ty, elem_ptr.base.toValue());
789 const size_ty_ref = try self.sizeType();789 const size_ty_ref = try self.sizeType();
790 const index_id = try self.constInt(size_ty_ref, elem_ptr.index);790 const index_id = try self.constInt(size_ty_ref, elem_ptr.index);
791 return self.ptrAccessChain(result_ty_ref, parent_ptr_id, index_id, &.{});791
792 return try self.ptrElemPtr(parent_ptr_ty, parent_ptr_id, index_id);
792 },793 },
793 .field => unreachable, // TODO794 .field => unreachable, // TODO
794 }795 }
test/behavior/slice.zig-1
...@@ -219,7 +219,6 @@ test "slice string literal has correct type" {...@@ -219,7 +219,6 @@ test "slice string literal has correct type" {
219219
220test "result location zero sized array inside struct field implicit cast to slice" {220test "result location zero sized array inside struct field implicit cast to slice" {
221 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO221 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
222 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
223222
224 const E = struct {223 const E = struct {
225 entries: []u32,224 entries: []u32,