From ce5e09aa4616bcaadccf26129ca2831b0ad8930a Mon Sep 17 00:00:00 2001 From: lemon Date: Sun, 14 Dec 2025 21:25:14 +0100 Subject: c: allow implicit type conversions between plain char pointer and signed/unsigned char pointer --- type.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'type.c') diff --git a/type.c b/type.c index a18903c..53491c9 100644 --- a/type.c +++ b/type.c @@ -250,9 +250,11 @@ assigncompat(union type dst, union type src) if (dst.t == TYPTR && src.t == TYPTR) { ds = typechild(dst); ss = typechild(src); - return ds.bits == ss.bits || ss.t == TYVOID || ds.t == TYVOID; - } - if (dst.t == TYBOOL && src.t == TYPTR) + if (ds.bits == ss.bits) return 1; + if (ss.t == TYVOID || ds.t == TYVOID) return 1; + if (ss.t == TYCHAR && in_range(ds.t, TYUCHAR, TYSCHAR)) return 1; + if (ds.t == TYCHAR && in_range(ss.t, TYUCHAR, TYSCHAR)) return 1; + } else if (dst.t == TYBOOL && src.t == TYPTR) return 1; return 0; } -- cgit v1.2.3