aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Jullien <jullien@coltrane.eligis.com>2016-09-25 12:03:23 +0200
committerChristian Jullien <jullien@coltrane.eligis.com>2016-09-25 12:03:23 +0200
commitc1b101cbafaccf4105c8fb87b3730446971c3644 (patch)
treee1529b8bb8b9019977cb7448f777fef50e893a59
parente91ce66dadf81d7188945d012e3c4930c776ddad (diff)
downloadtinycc-c1b101cbafaccf4105c8fb87b3730446971c3644.tar.gz
tinycc-c1b101cbafaccf4105c8fb87b3730446971c3644.tar.bz2
Improve __*LP*__ predefined macros
-rw-r--r--libtcc.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/libtcc.c b/libtcc.c
index 12ee171..72775ef 100644
--- a/libtcc.c
+++ b/libtcc.c
@@ -1143,14 +1143,21 @@ LIBTCCAPI TCCState *tcc_new(void)
# endif
/* TinyCC & gcc defines */
-#if defined TCC_TARGET_PE && defined TCC_TARGET_X86_64
+#if defined(TCC_TARGET_PE) && defined(TCC_TARGET_X86_64)
+ /* 64bit Windows. */
tcc_define_symbol(s, "__SIZE_TYPE__", "unsigned long long");
tcc_define_symbol(s, "__PTRDIFF_TYPE__", "long long");
tcc_define_symbol(s, "__LLP64__", NULL);
-#else
+#elif defined(TCC_TARGET_X86_64) || defined(TCC_TARGET_ARM64)
+ /* Other 64bit systems. */
tcc_define_symbol(s, "__SIZE_TYPE__", "unsigned long");
tcc_define_symbol(s, "__PTRDIFF_TYPE__", "long");
tcc_define_symbol(s, "__LP64__", NULL);
+#else
+ /* Other 32bit systems. */
+ tcc_define_symbol(s, "__SIZE_TYPE__", "unsigned long");
+ tcc_define_symbol(s, "__PTRDIFF_TYPE__", "long");
+ tcc_define_symbol(s, "__ILP32__", NULL);
#endif
#ifdef TCC_TARGET_PE