diff options
| -rw-r--r-- | libtcc.c | 25 | ||||
| -rw-r--r-- | tccgen.c | 4 | ||||
| -rw-r--r-- | tcctok.h | 4 |
3 files changed, 27 insertions, 6 deletions
@@ -885,15 +885,28 @@ LIBTCCAPI TCCState *tcc_new(void) /* wint_t is unsigned int by default, but (signed) int on BSDs and unsigned short on windows. Other OSes might have still other conventions, sigh. */ -#if defined(__FreeBSD__) || defined (__FreeBSD_kernel__) || defined(__NetBSD__) || defined(__OpenBSD__) +# if defined(__FreeBSD__) || defined (__FreeBSD_kernel__) + || defined(__NetBSD__) || defined(__OpenBSD__) tcc_define_symbol(s, "__WINT_TYPE__", "int"); -#else +# else tcc_define_symbol(s, "__WINT_TYPE__", "unsigned int"); -#endif +# endif +# if 0 /* glibc defines */ - tcc_define_symbol(s, "__REDIRECT(name, proto, alias)", "name proto __asm__ (#alias)"); - tcc_define_symbol(s, "__REDIRECT_NTH(name, proto, alias)", "name proto __asm__ (#alias) __THROW"); -#endif + tcc_define_symbol(s, "__REDIRECT(name, proto, alias)", + "name proto __asm__ (#alias)"); + tcc_define_symbol(s, "__REDIRECT_NTH(name, proto, alias)", + "name proto __asm__ (#alias) __THROW"); +# endif +# if 1 + /* define __GNUC__ to have some useful stuff from sys/cdefs.h */ + tcc_define_symbol(s, "__GNUC__", "2"); + tcc_define_symbol(s, "__GNUC_MINOR__", "1"); + tcc_define_symbol(s, "__builtin_alloca", "alloca"); + tcc_define_symbol(s, "__builtin_memcpy", "memcpy"); + tcc_define_symbol(s, "__USER_LABEL_PREFIX__", ""); +# endif +#endif /* ndef TCC_TARGET_PE */ return s; } @@ -3104,10 +3104,14 @@ static void parse_attribute(AttributeDef *ad) case TOK_MODE_DI: ad->a.mode = VT_LLONG + 1; break; + case TOK_MODE_QI: + ad->a.mode = VT_BYTE + 1; + break; case TOK_MODE_HI: ad->a.mode = VT_SHORT + 1; break; case TOK_MODE_SI: + case TOK_MODE_word: ad->a.mode = VT_INT + 1; break; default: @@ -117,10 +117,14 @@ DEF(TOK_FASTCALL1, "fastcall") DEF(TOK_FASTCALL2, "__fastcall") DEF(TOK_FASTCALL3, "__fastcall__") + DEF(TOK_MODE, "__mode__") + DEF(TOK_MODE_QI, "__QI__") DEF(TOK_MODE_DI, "__DI__") DEF(TOK_MODE_HI, "__HI__") DEF(TOK_MODE_SI, "__SI__") + DEF(TOK_MODE_word, "__word__") + DEF(TOK_DLLEXPORT, "dllexport") DEF(TOK_DLLIMPORT, "dllimport") DEF(TOK_NORETURN1, "noreturn") |
