From 3aa533519da073695a56a56159b7ea3c487fb1b2 Mon Sep 17 00:00:00 2001 From: Robin Voetter Date: Wed, 25 Aug 2021 02:58:19 +0200 Subject: [PATCH] Store to mutable pointer in analyzeRef This function previously attempted to store a value to an immutable pointer, after which storePtr would yield an error. --- src/Sema.zig | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/Sema.zig b/src/Sema.zig index a11bdec66d..90505c6806 100644 --- a/src/Sema.zig +++ b/src/Sema.zig @@ -8818,9 +8818,12 @@ fn analyzeRef( try sema.requireRuntimeBlock(block, src); const ptr_type = try Module.simplePtrType(sema.arena, operand_ty, false, .One); - const alloc = try block.addTy(.alloc, ptr_type); + const mut_ptr_type = try Module.simplePtrType(sema.arena, operand_ty, true, .One); + const alloc = try block.addTy(.alloc, mut_ptr_type); try sema.storePtr(block, src, alloc, operand); - return alloc; + + // TODO: Replace with sema.coerce when that supports adding pointer constness. + return sema.bitcast(block, ptr_type, alloc, src); } fn analyzeLoad(