| ... | @@ -4577,8 +4577,8 @@ static LLVMValueRef gen_valgrind_client_request(CodeGen *g, LLVMValueRef default | ... | @@ -4577,8 +4577,8 @@ static LLVMValueRef gen_valgrind_client_request(CodeGen *g, LLVMValueRef default |
| 4577 | zero, | 4577 | zero, |
| 4578 | LLVMConstInt(usize_type_ref, i, false), | 4578 | LLVMConstInt(usize_type_ref, i, false), |
| 4579 | }; | 4579 | }; |
| 4580 | LLVMValueRef elem_ptr = LLVMBuildInBoundsGEP2(g->builder, usize_type_ref, | 4580 | LLVMValueRef elem_ptr = LLVMBuildInBoundsGEP2(g->builder, |
| 4581 | array_ptr, indexes, 2, ""); | 4581 | LLVMGetAllocatedType(array_ptr), array_ptr, indexes, 2, ""); |
| 4582 | LLVMBuildStore(g->builder, array_elements[i], elem_ptr); | 4582 | LLVMBuildStore(g->builder, array_elements[i], elem_ptr); |
| 4583 | } | 4583 | } |
| 4584 | | 4584 | |
| ... | @@ -4599,7 +4599,7 @@ static LLVMValueRef gen_valgrind_client_request(CodeGen *g, LLVMValueRef default | ... | @@ -4599,7 +4599,7 @@ static LLVMValueRef gen_valgrind_client_request(CodeGen *g, LLVMValueRef default |
| 4599 | LLVMValueRef asm_fn = LLVMGetInlineAsm(function_type, buf_ptr(asm_template), buf_len(asm_template), | 4599 | LLVMValueRef asm_fn = LLVMGetInlineAsm(function_type, buf_ptr(asm_template), buf_len(asm_template), |
| 4600 | buf_ptr(asm_constraints), buf_len(asm_constraints), asm_has_side_effects, asm_is_alignstack, | 4600 | buf_ptr(asm_constraints), buf_len(asm_constraints), asm_has_side_effects, asm_is_alignstack, |
| 4601 | LLVMInlineAsmDialectATT, false); | 4601 | LLVMInlineAsmDialectATT, false); |
| 4602 | return LLVMBuildCall2(g->builder, LLVMGlobalGetValueType(asm_fn), asm_fn, param_values, input_and_output_count, ""); | 4602 | return LLVMBuildCall2(g->builder, function_type, asm_fn, param_values, input_and_output_count, ""); |
| 4603 | } | 4603 | } |
| 4604 | } | 4604 | } |
| 4605 | zig_unreachable(); | 4605 | zig_unreachable(); |
| ... | @@ -6761,14 +6761,14 @@ static LLVMValueRef ir_render_slice(CodeGen *g, Stage1Air *executable, Stage1Air | ... | @@ -6761,14 +6761,14 @@ static LLVMValueRef ir_render_slice(CodeGen *g, Stage1Air *executable, Stage1Air |
| 6761 | codegen_report_errors_and_exit(g); | 6761 | codegen_report_errors_and_exit(g); |
| 6762 | | 6762 | |
| 6763 | if (value_has_bits) { | 6763 | if (value_has_bits) { |
| 6764 | LLVMTypeRef array_llvm_ty = get_llvm_type(g, array_type); | 6764 | LLVMTypeRef elem_llvm_ty = get_llvm_type(g, array_type->data.pointer.child_type); |
| 6765 | if (want_runtime_safety && sentinel != nullptr) { | 6765 | if (want_runtime_safety && sentinel != nullptr) { |
| 6766 | LLVMValueRef sentinel_elem_ptr = LLVMBuildInBoundsGEP2(g->builder, array_llvm_ty, | 6766 | LLVMValueRef sentinel_elem_ptr = LLVMBuildInBoundsGEP2(g->builder, elem_llvm_ty, |
| 6767 | array_ptr, &end_val, 1, ""); | 6767 | array_ptr, &end_val, 1, ""); |
| 6768 | add_sentinel_check(g, sentinel_elem_ptr, sentinel); | 6768 | add_sentinel_check(g, sentinel_elem_ptr, sentinel); |
| 6769 | } | 6769 | } |
| 6770 | | 6770 | |
| 6771 | slice_start_ptr = LLVMBuildInBoundsGEP2(g->builder, array_llvm_ty, array_ptr, | 6771 | slice_start_ptr = LLVMBuildInBoundsGEP2(g->builder, elem_llvm_ty, array_ptr, |
| 6772 | &start_val, 1, ""); | 6772 | &start_val, 1, ""); |
| 6773 | } | 6773 | } |
| 6774 | | 6774 | |