[PATCH] Make the pointer parameter to __gthread_setspecific non-const
Richard Guenther
richard.guenther@gmail.com
Sun Aug 24 10:33:00 GMT 2008
On Sun, Aug 24, 2008 at 3:11 AM, Aaron W. LaFramboise
<aaronavay62@aaronwl.com> wrote:
> Richard Guenther wrote:
>>
>> On Sat, Aug 23, 2008 at 10:58 PM, Aaron W. LaFramboise
>> <aaronavay62@aaronwl.com> wrote:
>
>>> If you do a clean bootstrap of i386-pc-mingw32 from svn or a snapshot, it
>>> will fail in stage2 in a file that includes gthr-win32.h.
>>
>> Ok. I'd rather use the union trick then in gthr-win32.h.
>
> Alright. In that case, is the attached patch OK?
>
> As I mentioned, neither <system.h> nor <tsystem.h> are available here
> because other top-level libraries that don't have those use this, so we have
> to redefine this macro.
>
> I tested this on i386-pc-mingw32 with a bootstrap.
This is ok.
Thanks,
Richard.
> 2008-08-23 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
>
> * gcc/gthr-win32.h (__gthread_setspecific): Use CONST_CAST2.
>
> Index: gcc/gthr-win32.h
> ===================================================================
> --- gcc/gthr-win32.h (revision 139510)
> +++ gcc/gthr-win32.h (working copy)
> +/* This is a copy of CONST_CAST2 from system.h */
> +#ifndef CONST_CAST2
> +#define CONST_CAST2(TOTYPE,FROMTYPE,X) ((__extension__(union {FROMTYPE _q;
> \
> + TOTYPE _nq;})(X))._nq)
> +#endif
> +
> static inline int
> __gthread_setspecific (__gthread_key_t key, const void *ptr)
> {
> - return (TlsSetValue (key, (void*) ptr) != 0) ? 0 : (int) GetLastError ();
> + if (TlsSetValue (key, CONST_CAST2(void *, const void *, ptr)) != 0)
> + return 0;
> + else
> + return GetLastError ();
> }
>
> static inline void
>
>
More information about the Gcc-patches
mailing list