zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit 0e6dc64a6fa173ae92197f692cf907fdc8bbf811 (tree)
parent cd9f6001af407a6961281cbe9c658cfe94b81ecb
Author: Robin Voetter <robin@voetter.nl>
Date:   Thu, 26 Aug 2021 03:29:31 +0200

Address Spaces: Return proper address space for &x[y]

Diffstat:
Msrc/Sema.zig | 11+++++++----
1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/src/Sema.zig b/src/Sema.zig @@ -9035,10 +9035,13 @@ fn elemPtrArray( ) CompileError!Air.Inst.Ref { const array_ptr_ty = sema.typeOf(array_ptr); const pointee_type = array_ptr_ty.elemType().elemType(); - const result_ty = if (array_ptr_ty.ptrIsMutable()) - try Type.Tag.single_mut_pointer.create(sema.arena, pointee_type) - else - try Type.Tag.single_const_pointer.create(sema.arena, pointee_type); + const result_ty = try Module.simplePtrTypeWithAddressSpace( + sema.arena, + pointee_type, + array_ptr_ty.ptrIsMutable(), + .One, + array_ptr_ty.ptrAddressSpace(), + ); if (try sema.resolveDefinedValue(block, src, array_ptr)) |array_ptr_val| { if (try sema.resolveDefinedValue(block, elem_index_src, elem_index)) |index_val| {