From 15d3ea027095257f98238b3492a6412a05b540b5 Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Thu, 14 Apr 2022 00:52:26 +0200 Subject: [PATCH] string, wchar: Fix error in C++ mode on glibc systems with clang. * lib/string.in.h (free): Add exception specification like glibc does. * lib/wchar.in.h (free): Likewise. --- ChangeLog | 6 ++++++ lib/string.in.h | 8 ++++++++ lib/wchar.in.h | 8 ++++++++ 3 files changed, 22 insertions(+) diff --git a/ChangeLog b/ChangeLog index f6bfd4bee4..bcde49cde3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2022-04-13 Bruno Haible + + string, wchar: Fix error in C++ mode on glibc systems with clang. + * lib/string.in.h (free): Add exception specification like glibc does. + * lib/wchar.in.h (free): Likewise. + 2022-04-13 Bruno Haible string: Fix errors in C++ mode on glibc systems with clang. diff --git a/lib/string.in.h b/lib/string.in.h index b818ae9cdf..b6840fa912 100644 --- a/lib/string.in.h +++ b/lib/string.in.h @@ -125,14 +125,22 @@ _GL_EXTERN_C void rpl_free (void *); # if defined _MSC_VER _GL_EXTERN_C void __cdecl free (void *); # else +# if defined __cplusplus && (__GLIBC__ + (__GLIBC_MINOR__ >= 14) > 2) +_GL_EXTERN_C void free (void *) throw (); +# else _GL_EXTERN_C void free (void *); +# endif # endif # endif #else # if defined _MSC_VER _GL_EXTERN_C void __cdecl free (void *); # else +# if defined __cplusplus && (__GLIBC__ + (__GLIBC_MINOR__ >= 14) > 2) +_GL_EXTERN_C void free (void *) throw (); +# else _GL_EXTERN_C void free (void *); +# endif # endif #endif diff --git a/lib/wchar.in.h b/lib/wchar.in.h index d7792e5fb7..0d5c0b7abe 100644 --- a/lib/wchar.in.h +++ b/lib/wchar.in.h @@ -188,14 +188,22 @@ _GL_EXTERN_C void rpl_free (void *); # if defined _MSC_VER _GL_EXTERN_C void __cdecl free (void *); # else +# if defined __cplusplus && (__GLIBC__ + (__GLIBC_MINOR__ >= 14) > 2) +_GL_EXTERN_C void free (void *) throw (); +# else _GL_EXTERN_C void free (void *); +# endif # endif # endif #else # if defined _MSC_VER _GL_EXTERN_C void __cdecl free (void *); # else +# if defined __cplusplus && (__GLIBC__ + (__GLIBC_MINOR__ >= 14) > 2) +_GL_EXTERN_C void free (void *) throw (); +# else _GL_EXTERN_C void free (void *); +# endif # endif #endif -- 2.39.5