diff options
| author | 2025-12-14 21:25:14 +0100 | |
|---|---|---|
| committer | 2025-12-14 21:25:14 +0100 | |
| commit | ce5e09aa4616bcaadccf26129ca2831b0ad8930a (patch) | |
| tree | 2ecdbb3bd0959e08bd122ee511121ad3726f7fbd /type.c | |
| parent | 840f60ffded03121ba4ea407e7bef5e89cd3b9bd (diff) | |
c: allow implicit type conversions between plain char pointer and
signed/unsigned char pointer
Diffstat (limited to 'type.c')
| -rw-r--r-- | type.c | 8 |
1 files changed, 5 insertions, 3 deletions
@@ -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; } |