include: Fix setjmp() support with 32-bit ucrtbase.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
3bf9092590
commit
3d72d2600f
|
@ -143,17 +143,29 @@ typedef _JBTYPE jmp_buf[_JBLEN];
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
int __cdecl _setjmp(jmp_buf);
|
|
||||||
void __cdecl longjmp(jmp_buf,int);
|
void __cdecl longjmp(jmp_buf,int);
|
||||||
|
|
||||||
#if defined(_WIN64) && defined(__GNUC__)
|
#ifdef _WIN64
|
||||||
# ifdef _UCRT
|
# ifdef _UCRT
|
||||||
# define _setjmpex __intrinsic_setjmpex
|
# define _setjmpex __intrinsic_setjmpex
|
||||||
# endif
|
# endif
|
||||||
|
# ifdef __GNUC__
|
||||||
int __cdecl __attribute__ ((__nothrow__,__returns_twice__)) _setjmpex(jmp_buf,void*);
|
int __cdecl __attribute__ ((__nothrow__,__returns_twice__)) _setjmpex(jmp_buf,void*);
|
||||||
# define setjmp(buf) _setjmpex(buf,__builtin_frame_address(0))
|
# define setjmp(buf) _setjmpex(buf,__builtin_frame_address(0))
|
||||||
# define setjmpex(buf) _setjmpex(buf,__builtin_frame_address(0))
|
# define setjmpex(buf) _setjmpex(buf,__builtin_frame_address(0))
|
||||||
|
# endif
|
||||||
|
#else /* _WIN64 */
|
||||||
|
# ifdef _UCRT
|
||||||
|
# define _setjmp __intrinsic_setjmp
|
||||||
|
# endif
|
||||||
|
# ifdef __GNUC__
|
||||||
|
int __cdecl __attribute__ ((__nothrow__,__returns_twice__)) _setjmp(jmp_buf);
|
||||||
# else
|
# else
|
||||||
|
int __cdecl _setjmp(jmp_buf);
|
||||||
|
# endif
|
||||||
|
#endif /* _WIN64 */
|
||||||
|
|
||||||
|
#ifndef setjmp
|
||||||
#define setjmp _setjmp
|
#define setjmp _setjmp
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue