authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2026-06-28 17:18:45-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2026-06-28 18:34:30-07:00
log1959b60bd0d5e10ba56fbe555cd063e9d304227b
tree632dbee54b4d68d44fdc5ddea04cc20cee46d0b0
parentdda21a25ca12c1d974ace0cb3ce52aa75003da6f

spirv: ignore pointer size differences

pointer sizes are not real, they can't hurt you

1 files changed, 11 insertions(+), 7 deletions(-)

src/codegen/spirv/CodeGen.zig+11-7
......@@ -1895,13 +1895,17 @@ fn derivePtr(cg: *CodeGen, derivation: Value.PointerDeriveStep) !Id {
18951895 depth += 1;
18961896 } else break;
18971897 }
1898 if (depth > 0 and cur.toIntern() == dst_child.toIntern()) {
1899 const scratch_top = cg.id_scratch.items.len;
1900 defer cg.id_scratch.shrinkRetainingCapacity(scratch_top);
1901 const zero = try cg.constInt(.u32, 0);
1902 const ids = try cg.id_scratch.addManyAsSlice(gpa, depth);
1903 @memset(ids, zero);
1904 return cg.accessChainId(result_ty_id, parent_ptr_id, ids);
1898 if (cur.toIntern() == dst_child.toIntern()) {
1899 if (depth != 0) {
1900 const scratch_top = cg.id_scratch.items.len;
1901 defer cg.id_scratch.shrinkRetainingCapacity(scratch_top);
1902 const zero = try cg.constInt(.u32, 0);
1903 const ids = try cg.id_scratch.addManyAsSlice(gpa, depth);
1904 @memset(ids, zero);
1905 return cg.accessChainId(result_ty_id, parent_ptr_id, ids);
1906 } else {
1907 return parent_ptr_id;
1908 }
19051909 }
19061910 if (target.os.tag == .opencl) {
19071911 const result_ptr_id = cg.allocId();