tinycc-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Tinycc-devel] Before TinyCC supports __declspec(noreturn) and __attribu


From: Timo VJ Lähde
Subject: [Tinycc-devel] Before TinyCC supports __declspec(noreturn) and __attribute__ ((__nothrow__))
Date: Wed, 31 Mar 2010 21:40:37 +0300

Latest mob and win32 have problems with those __attribute etc:
-------------------------------------------------------------
Before TinyCC supports __declspec(noreturn) and __attribute__ ((__nothrow__)) This patch don't help /win32/include/winapi/winnt.h:3103: error: too many basic types.
-------------------------------------------------------------
--- a\win32\include\setjmp.h Mon Mar 15 23:51:00 2010
+++ b\win32\include\setjmp.h Wed Mar 31 19:03:44 2010
@@ -130,27 +130,27 @@
#define _JMP_BUF_DEFINED
#endif

-  void * __cdecl __attribute__ ((__nothrow__)) mingw_getsp(void);
+  void * __cdecl __MINGW_NOTHROW mingw_getsp(void);

#ifdef USE_MINGW_SETJMP_TWO_ARGS
#ifndef _INC_SETJMPEX
#define setjmp(BUF) _setjmp((BUF),mingw_getsp())
- int __cdecl __attribute__ ((__nothrow__)) _setjmp(jmp_buf _Buf,void *_Ctx);
+  int __cdecl __MINGW_NOTHROW _setjmp(jmp_buf _Buf,void *_Ctx);
#else
#undef setjmp
#define setjmp(BUF) _setjmpex((BUF),mingw_getsp())
#define setjmpex(BUF) _setjmpex((BUF),mingw_getsp())
- int __cdecl __attribute__ ((__nothrow__)) _setjmpex(jmp_buf _Buf,void *_Ctx);
+  int __cdecl __MINGW_NOTHROW _setjmpex(jmp_buf _Buf,void *_Ctx);
#endif
#else
#ifndef _INC_SETJMPEX
#define setjmp _setjmp
#endif
-  int __cdecl __attribute__ ((__nothrow__)) setjmp(jmp_buf _Buf);
+  int __cdecl __MINGW_NOTHROW setjmp(jmp_buf _Buf);
#endif

- __declspec(noreturn) __attribute__ ((__nothrow__)) void __cdecl ms_longjmp(jmp_buf _Buf,int _Value)/* throw(...)*/; - __declspec(noreturn) __attribute__ ((__nothrow__)) void __cdecl longjmp(jmp_buf _Buf,int _Value); + __MINGW_ATTRIB_NORETURN __MINGW_NOTHROW void __cdecl ms_longjmp(jmp_buf _Buf,int _Value)/* throw(...)*/; + __MINGW_ATTRIB_NORETURN __MINGW_NOTHROW void __cdecl longjmp(jmp_buf _Buf,int _Value);

#ifdef __cplusplus
}
-------------------------------------------------------------
With weak symbol patch crash when compiling chkstk.S
-------------------------------------------------------------
--- a\libtcc.c Mon Mar 15 22:51:00 2010
+++ b\libtcc.c Wed Mar 17 12:07:06 2010
@@ -425,7 +425,7 @@
    if (sym->type.t & VT_STATIC)
        sym_bind = STB_LOCAL;
    else {
-        if (FUNC_WEAK(sym->type.ref->r))
+        if (sym->type.ref && FUNC_WEAK(sym->type.ref->r))
            sym_bind = STB_WEAK;
        else
            sym_bind = STB_GLOBAL;
-------------------------------------------------------------




reply via email to

[Prev in Thread] Current Thread [Next in Thread]