clang -O2 -Wall -Wextra -Werror -Wno-error=deprecated -Wno-error=deprecated-declarations monetary/strfmon_l.c -o monetary/strfmon_l -D_POSIX_C_SOURCE=202405L -lm -lintl monetary/strfmon_l.c:5:40: error: type specifier missing, defaults to 'int' [-Werror,-Wimplicit-int] ssize_t (*foo)(char *restrict, size_t, locale_t, const char *restrict, ...) = strfmon_l; ^ monetary/strfmon_l.c:5:79: error: use of undeclared identifier 'strfmon_l'; did you mean 'strfmon'? ssize_t (*foo)(char *restrict, size_t, locale_t, const char *restrict, ...) = strfmon_l; ^~~~~~~~~ strfmon /usr/include/monetary.h:48:9: note: 'strfmon' declared here ssize_t strfmon(char * __restrict, size_t, const char * __restrict, ...) ^ monetary/strfmon_l.c:5:11: error: incompatible pointer types initializing 'ssize_t (*)(char *restrict, size_t, int, const char *restrict, ...)' with an expression of type 'ssize_t (char *restrict, size_t, const char *restrict, ...)' [-Werror,-Wincompatible-pointer-types] ssize_t (*foo)(char *restrict, size_t, locale_t, const char *restrict, ...) = strfmon_l; ^ ~~~~~~~~~ 3 errors generated.