aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2024-05-19 23:55:45 +0100
committergingerBill <bill@gingerbill.org>2024-05-19 23:55:45 +0100
commit1207d64c64033b0a1cee8eecb70d068a72eddb62 (patch)
tree2056b14b84202043067b41c52761089c90886064 /src
parentc091b0d060ea9b64a559e5f1a469edf0dc006267 (diff)
Fix `intrinsics.ptr_sub`
Diffstat (limited to 'src')
-rw-r--r--src/llvm_backend_proc.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/llvm_backend_proc.cpp b/src/llvm_backend_proc.cpp
index 736c54e52..b4b5b591b 100644
--- a/src/llvm_backend_proc.cpp
+++ b/src/llvm_backend_proc.cpp
@@ -2384,9 +2384,10 @@ gb_internal lbValue lb_build_builtin_proc(lbProcedure *p, Ast *expr, TypeAndValu
lbValue ptr0 = lb_emit_conv(p, lb_build_expr(p, ce->args[0]), t_uintptr);
lbValue ptr1 = lb_emit_conv(p, lb_build_expr(p, ce->args[1]), t_uintptr);
+ ptr0 = lb_emit_conv(p, ptr0, t_int);
+ ptr1 = lb_emit_conv(p, ptr1, t_int);
- lbValue diff = lb_emit_arith(p, Token_Sub, ptr0, ptr1, t_uintptr);
- diff = lb_emit_conv(p, diff, t_int);
+ lbValue diff = lb_emit_arith(p, Token_Sub, ptr0, ptr1, t_int);
return lb_emit_arith(p, Token_Quo, diff, lb_const_int(p->module, t_int, type_size_of(elem)), t_int);
}