https://gcc.gnu.org/g:bcb3b1eef1eca3ea62391fb3c0e6af549b4d9d02
commit r16-7352-gbcb3b1eef1eca3ea62391fb3c0e6af549b4d9d02 Author: Torbjörn SVENSSON <[email protected]> Date: Thu Jan 29 09:26:26 2026 +0100 libgcc: replace CONST_CAST2 macro libgcc/ChangeLog: * config/i386/gthr-win32.h: Replace CONST_CAST2 with expanded expression where used. * config/pa/gthr-dce.h: Likewise. Signed-off-by: Torbjörn SVENSSON <[email protected]> Diff: --- libgcc/config/i386/gthr-win32.h | 17 +++++++---------- libgcc/config/pa/gthr-dce.h | 18 +++++++----------- 2 files changed, 14 insertions(+), 21 deletions(-) diff --git a/libgcc/config/i386/gthr-win32.h b/libgcc/config/i386/gthr-win32.h index 633dff7ed734..2c7504ef2653 100644 --- a/libgcc/config/i386/gthr-win32.h +++ b/libgcc/config/i386/gthr-win32.h @@ -86,15 +86,6 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see # define __GTHREAD_INLINE static inline #endif -/* Make sure CONST_CAST2 (origin in system.h) is declared. */ -#ifndef CONST_CAST2 -#ifdef __cplusplus -#define CONST_CAST2(TOTYPE,FROMTYPE,X) (const_cast<TOTYPE> (X)) -#else -#define CONST_CAST2(TOTYPE,FROMTYPE,X) ((__extension__(union {FROMTYPE _q; TOTYPE _nq;})(X))._nq) -#endif -#endif - #ifndef ATTRIBUTE_UNUSED #define ATTRIBUTE_UNUSED __attribute__ ((__unused__)) #endif @@ -720,7 +711,13 @@ __gthread_getspecific (__gthread_key_t __key) __GTHREAD_WIN32_INLINE int __gthread_setspecific (__gthread_key_t __key, const void *__ptr) { - if (TlsSetValue (__key, CONST_CAST2(void *, const void *, __ptr))) + if (TlsSetValue (__key, +#ifdef __cplusplus + const_cast<void *> (__ptr) +#else + (__extension__ (union {const void *_q; void *_nq;})(__ptr))._nq +#endif + )) return 0; else return (int) GetLastError (); diff --git a/libgcc/config/pa/gthr-dce.h b/libgcc/config/pa/gthr-dce.h index b21ea8336c76..ea40492e1f2b 100644 --- a/libgcc/config/pa/gthr-dce.h +++ b/libgcc/config/pa/gthr-dce.h @@ -36,15 +36,6 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see DCE threads are based on POSIX threads draft 4, and many things have changed since then. */ -/* Make sure CONST_CAST2 (original in system.h) is defined. */ -#ifndef CONST_CAST2 -#ifdef __cplusplus -#define CONST_CAST2(TOTYPE,FROMTYPE,X) (const_cast<TOTYPE> (X)) -#else -#define CONST_CAST2(TOTYPE,FROMTYPE,X) ((__extension__(union {FROMTYPE _q; TOTYPE _nq;})(X))._nq) -#endif -#endif - #define __GTHREADS 1 #include <pthread.h> @@ -470,8 +461,13 @@ __gthread_getspecific (__gthread_key_t __key) static inline int __gthread_setspecific (__gthread_key_t __key, const void *__ptr) { - return __gthrw_(pthread_setspecific) - (__key, CONST_CAST2(void *, const void *, __ptr)); + return __gthrw_(pthread_setspecific) (__key, +#ifdef __cplusplus + const_cast<void *> (__ptr) +#else + (__extension__ (union {const void *_q; void *_nq;})(__ptr))._nq +#endif + ); } static inline void
