Now, on Solaris 11.3 with gcc, I see a warning ../../gllib/vasnprintf.c:275:25: warning: implicit declaration of function ‘wcsnlen’ [-Wimplicit-function-declaration]
I don't know whether that's a Solaris 11 bug or a GCC installation/configuration problem. Anyway, this simple patch fixes it. 2023-03-22 Bruno Haible <br...@clisp.org> vasnwprintf: Fix a warning: implicit declaration of function ‘wcsnlen’. * m4/vasnprintf.m4 (gl_PREREQ_VASNWPRINTF): Test also whether wcsnlen is declared. * lib/vasnprintf.c (local_wcsnlen): Together with HAVE_WCSNLEN, test also HAVE_DECL_WCSNLEN. diff --git a/lib/vasnprintf.c b/lib/vasnprintf.c index 618fae7c77..732d13661f 100644 --- a/lib/vasnprintf.c +++ b/lib/vasnprintf.c @@ -271,7 +271,7 @@ local_wcslen (const wchar_t *s) #endif #if (!USE_SNPRINTF || (WIDE_CHAR_VERSION && DCHAR_IS_TCHAR) || !HAVE_SNPRINTF_RETVAL_C99 || USE_MSVC__SNPRINTF) && HAVE_WCHAR_T && WIDE_CHAR_VERSION -# if HAVE_WCSNLEN +# if HAVE_WCSNLEN && HAVE_DECL_WCSNLEN # define local_wcsnlen wcsnlen # else # ifndef local_wcsnlen_defined diff --git a/m4/vasnprintf.m4 b/m4/vasnprintf.m4 index 911e77c874..a42b5f83ac 100644 --- a/m4/vasnprintf.m4 +++ b/m4/vasnprintf.m4 @@ -1,4 +1,4 @@ -# vasnprintf.m4 serial 45 +# vasnprintf.m4 serial 46 dnl Copyright (C) 2002-2004, 2006-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -96,6 +96,7 @@ AC_DEFUN_ONCE([gl_PREREQ_VASNWPRINTF] [ AC_CHECK_FUNCS_ONCE([swprintf wcsnlen mbrtowc]) AC_CHECK_DECLS([_snwprintf], , , [[#include <stdio.h>]]) + AC_CHECK_DECLS([wcsnlen], , , [[#include <wchar.h>]]) gl_SWPRINTF_WORKS case "$gl_cv_func_swprintf_works" in *yes)