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