From 1bf2810f338a7bf83455266ef66a535bdc1d4f83 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 12 Mar 2018 01:21:10 -0400 Subject: fix comptime slicing not preserving comptime mutability * fix comptime slice of slice not preserving mutatibility of the comptime data * fix comptime slice of pointer not preserving mutability of the comptime data closes #826 --- src/ir.cpp | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/ir.cpp') diff --git a/src/ir.cpp b/src/ir.cpp index 69b955aef7..a52aaa2086 100644 --- a/src/ir.cpp +++ b/src/ir.cpp @@ -15995,6 +15995,10 @@ static TypeTableEntry *ir_analyze_instruction_slice(IrAnalyze *ira, IrInstructio init_const_ptr_array(ira->codegen, ptr_val, array_val, index, is_const); if (array_type->id == TypeTableEntryIdArray) { ptr_val->data.x_ptr.mut = ptr_ptr->value.data.x_ptr.mut; + } else if (is_slice(array_type)) { + ptr_val->data.x_ptr.mut = parent_ptr->data.x_ptr.mut; + } else if (array_type->id == TypeTableEntryIdPointer) { + ptr_val->data.x_ptr.mut = parent_ptr->data.x_ptr.mut; } } else if (ptr_is_undef) { ptr_val->type = get_pointer_to_type(ira->codegen, parent_ptr->type->data.pointer.child_type, -- cgit v1.2.3