aboutsummaryrefslogtreecommitdiff
path: root/libtcc.c
diff options
context:
space:
mode:
Diffstat (limited to 'libtcc.c')
-rw-r--r--libtcc.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/libtcc.c b/libtcc.c
index 601999e..cc84cd7 100644
--- a/libtcc.c
+++ b/libtcc.c
@@ -988,8 +988,17 @@ LIBTCCAPI TCCState *tcc_new(void)
#ifdef TCC_TARGET_PE
tcc_define_symbol(s, "__WCHAR_TYPE__", "unsigned short");
+ tcc_define_symbol(s, "__WINT_TYPE__", "unsigned short");
#else
tcc_define_symbol(s, "__WCHAR_TYPE__", "int");
+ /* 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__)
+ tcc_define_symbol(s, "__WINT_TYPE__", "int");
+#else
+ tcc_define_symbol(s, "__WINT_TYPE__", "unsigned int");
+#endif
#endif
#ifndef TCC_TARGET_PE