shithub: sl

Download patch

ref: 07d4e19ee7d495d9c90fecd353bfd220b3d06b2a
parent: 3065329a32e17d2ba7089746b2ed5286e132aa8d
author: Sigrid Solveig Haflínudóttir <sigrid@ftrv.se>
date: Mon Apr 7 13:19:11 EDT 2025

fix bitwise ops on ptr (thanks spew)

--- a/src/cvalues.c
+++ b/src/cvalues.c
@@ -1233,7 +1233,7 @@
 		case T_U32: return mk_u32(*(u32int*)aptr | (u32int)b64);
 		case T_S64: return mk_s64(*(s64int*)aptr | (s64int)b64);
 		case T_U64: return mk_u64(*(u64int*)aptr | (u64int)b64);
-		case T_PTR: return mk_ptr(*(uintptr*)aptr & (uintptr)b64);
+		case T_PTR: return mk_ptr(*(uintptr*)aptr | (uintptr)b64);
 		case T_MP:  mpor(*(mpint**)aptr, bmp, resmp); return mk_mp(resmp);
 		case T_FLOAT:
 		case T_DOUBLE: break;
@@ -1249,7 +1249,7 @@
 		case T_U32: return mk_u32(*(u32int*)aptr ^ (u32int)b64);
 		case T_S64: return mk_s64(*(s64int*)aptr ^ (s64int)b64);
 		case T_U64: return mk_u64(*(u64int*)aptr ^ (u64int)b64);
-		case T_PTR: return mk_ptr(*(uintptr*)aptr & (uintptr)b64);
+		case T_PTR: return mk_ptr(*(uintptr*)aptr ^ (uintptr)b64);
 		case T_MP:  mpxor(*(mpint**)aptr, bmp, resmp); return mk_mp(resmp);
 		case T_FLOAT:
 		case T_DOUBLE: break;