From 492362d146fa3a374f623a18a5a0b5b8982d3a67 Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Sun, 9 Feb 2025 11:16:03 +0100 Subject: [PATCH] mbsstr, mbscasestr, mbspcasecmp: Fix use of 'typeof'. * lib/string.in.h (mbsstr, mbspcasecmp, mbscasestr): Perform array to pointer conversion in argument of 'typeof'. --- ChangeLog | 4 ++++ lib/string.in.h | 6 +++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index f958f3632f..135637d97b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2025-02-09 Bruno Haible + 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 *'. diff --git a/lib/string.in.h b/lib/string.in.h index bfe949cf84..d4c7df6258 100644 --- a/lib/string.in.h +++ b/lib/string.in.h @@ -1193,7 +1193,7 @@ template <> # 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) \ @@ -1259,7 +1259,7 @@ template <> # 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) \ @@ -1295,7 +1295,7 @@ template <> # 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) \ -- 2.39.5