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:
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| {