mirror of
https://github.com/frida/tinycc
synced 2024-12-25 06:26:49 +03:00
#define __GNUC__ = 2.1
__GNUC__ nowadays as macro seems to mean the "GNU C dialect" rather than the compiler itself. See also http://gcc.gnu.org/ml/gcc/2008-07/msg00026.html This patch will probably cause problems of various kinds but maybe we should try nonetheless.
This commit is contained in:
parent
4d247c00a3
commit
f3c1ea6c2d
19
libtcc.c
19
libtcc.c
@ -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
|
||||
tcc_define_symbol(s, "__WINT_TYPE__", "unsigned int");
|
||||
# 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");
|
||||
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;
|
||||
}
|
||||
|
4
tccgen.c
4
tccgen.c
@ -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:
|
||||
|
4
tcctok.h
4
tcctok.h
@ -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")
|
||||
|
Loading…
Reference in New Issue
Block a user