2025-02-09 Bruno Haible <bruno@clisp.org>
+ mbsstr, mbscasestr, mbspcasecmp: Fix use of 'typeof'.
+ * lib/string.in.h (mbsstr, mbspcasecmp, mbscasestr): Perform array to
+ pointer conversion in argument of 'typeof'.
+
mbsstr, mbscasestr, mbspcasecmp: Use const-improved C++ templates.
* lib/string.in.h (mbsstr, mbspcasecmp, mbscasestr): In C++, define
through a template that supports both 'char *' and 'const char *'.
# define mbsstr mbsstr_template
# else
# if __STDC_VERSION__ >= 202311
-# define mbsstr(h,n) (typeof(h)) mbsstr ((h), (n))
+# define mbsstr(h,n) (typeof ((h) + 0)) mbsstr ((h), (n))
# elif ((__GNUC__ + (__GNUC_MINOR__ >= 9) > 4) || (__clang_major__ >= 3) \
|| defined __ICC || defined __TINYC__)
# define mbsstr(h,n) \
# define mbspcasecmp mbspcasecmp_template
# else
# if __STDC_VERSION__ >= 202311
-# define mbspcasecmp(s,p) (typeof(s)) mbspcasecmp ((s), (p))
+# define mbspcasecmp(s,p) (typeof ((s) + 0)) mbspcasecmp ((s), (p))
# elif ((__GNUC__ + (__GNUC_MINOR__ >= 9) > 4) || (__clang_major__ >= 3) \
|| defined __ICC || defined __TINYC__)
# define mbspcasecmp(s,p) \
# define mbscasestr mbscasestr_template
# else
# if __STDC_VERSION__ >= 202311
-# define mbscasestr(h,n) (typeof(h)) mbscasestr ((h), (n))
+# define mbscasestr(h,n) (typeof ((h) + 0)) mbscasestr ((h), (n))
# elif ((__GNUC__ + (__GNUC_MINOR__ >= 9) > 4) || (__clang_major__ >= 3) \
|| defined __ICC || defined __TINYC__)
# define mbscasestr(h,n) \