scc

simple c99 compiler
git clone git://git.simple-cc.org/scc
Log | Files | Refs | Submodules | README | LICENSE

commit 01d3b234128ef43576161834ef6f06c79dcaf5a8
parent 6f9272021fd3925a09a9e445d2ee890d29017a28
Author: Roberto E. Vargas Caballero <k0ga@shike2.com>
Date:   Mon, 10 Mar 2025 10:05:45 +0100

libc/darwin: Don't use MB_CUR_MAX for mbstate_t

The definition of mbstate_t was directly copied from the darwin
headers, but it wrongly assumes that MB_CUR_MAX is defined, but
wchar.h does not. The simpliest way to solve the situation is to
hardcode the number 4, because other solutions would need an
internal macro (for example, _MB_CUR_MAX) that is converted to
MB_CUR_MAX if stdlib.h is included. Anyway that solution still
have problems, because this affects to the ABI of darwin, so
our changes to MB_CUR_MAX should not affect to this ABI.

Diffstat:
Minclude/bits/darwin/sys/cdefs.h | 2+-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/bits/darwin/sys/cdefs.h b/include/bits/darwin/sys/cdefs.h @@ -1,7 +1,7 @@ #ifdef _NEED_MBSTATE_T #ifndef _MBSTATE_T typedef struct { - unsigned char state[MB_CUR_MAX]; + unsigned char state[4]; size_t count; } mbstate_t; #define _MBSTATE_T