cc -pthread -Wall -Wextra -Werror -Wno-error=deprecated -Wno-error=deprecated-declarations wchar/wcsxfrm_l.c -o wchar/wcsxfrm_l -D_POSIX_C_SOURCE=202405L -lm -lpthread -liconv wchar/wcsxfrm_l.c:5:67: error: type specifier missing, defaults to 'int'; ISO C99 and later do not support implicit int [-Wimplicit-int] 5 | size_t (*foo)(wchar_t *restrict, const wchar_t *restrict, size_t, locale_t) = wcsxfrm_l; | ^ | int wchar/wcsxfrm_l.c:5:79: error: use of undeclared identifier 'wcsxfrm_l'; did you mean 'wcsxfrm'? 5 | size_t (*foo)(wchar_t *restrict, const wchar_t *restrict, size_t, locale_t) = wcsxfrm_l; | ^~~~~~~~~ | wcsxfrm /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/_wchar.h:142:8: note: 'wcsxfrm' declared here 142 | size_t wcsxfrm(wchar_t * __restrict, const wchar_t * __restrict, size_t); | ^ wchar/wcsxfrm_l.c:5:10: error: incompatible function pointer types initializing 'size_t (*)(wchar_t *restrict, const wchar_t *restrict, size_t, int)' (aka 'unsigned long (*)(int *restrict, const int *restrict, unsigned long, int)') with an expression of type 'size_t (wchar_t *restrict, const wchar_t *restrict, size_t)' (aka 'unsigned long (int *restrict, const int *restrict, unsigned long)') [-Wincompatible-function-pointer-types] 5 | size_t (*foo)(wchar_t *restrict, const wchar_t *restrict, size_t, locale_t) = wcsxfrm_l; | ^ ~~~~~~~~~ 3 errors generated.