summaryrefslogtreecommitdiffstats
path: root/ffi.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2022-05-19 03:56:02 -0700
committerKaz Kylheku <kaz@kylheku.com>2022-05-19 03:56:02 -0700
commitec80c9c4c2a54bf21062a07281acefaf51688fb4 (patch)
treeaf9cf276b84ed45272ba47ba366ac97c1003f95d /ffi.c
parent7277c45c15d8b13db0326e03dff9e4b4c00ad5b5 (diff)
downloadtxr-ec80c9c4c2a54bf21062a07281acefaf51688fb4.tar.gz
txr-ec80c9c4c2a54bf21062a07281acefaf51688fb4.tar.bz2
txr-ec80c9c4c2a54bf21062a07281acefaf51688fb4.zip
ffi: use longlong_t.
ffi.c (ffi_init_extra_types): Use longlong_t and ulonglong_t, subject to HAVE_LONGLONG_T. If there is no intmax_t and no longlong_t, don't define intmax-t and uintmax-t.
Diffstat (limited to 'ffi.c')
-rw-r--r--ffi.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/ffi.c b/ffi.c
index 14099baf..6134f121 100644
--- a/ffi.c
+++ b/ffi.c
@@ -4719,11 +4719,12 @@ static void ffi_init_extra_types(void)
ffi_typedef(intern(lit("wint-t"), user_package),
type_by_size[convert(wint_t, -1) > 0][sizeof (wint_t)]);
+#if HAVE_INTMAX_T || HAVE_LONGLONG_T
{
#if HAVE_INTMAX_T
typedef intmax_t imax_t;
-#else
- typedef long long imax_t;
+#elif HAVE_LONGLONG_T
+ typedef longlong_t imax_t;
#endif
if (sizeof(imax_t) <= 8) {
@@ -4733,6 +4734,7 @@ static void ffi_init_extra_types(void)
type_by_size[1][sizeof (imax_t)]);
}
}
+#endif
#if HAVE_SYS_TYPES_H
ffi_typedef(intern(lit("blkcnt-t"), user_package),
@@ -4775,10 +4777,12 @@ static void ffi_init_extra_types(void)
type_by_size[convert(uid_t, -1) > 0][sizeof (uid_t)]);
#endif
+#if HAVE_LONGLONG_T
ffi_typedef(intern(lit("longlong"), user_package),
- type_by_size[0][sizeof (long long)]);
+ type_by_size[0][sizeof (longlong_t)]);
ffi_typedef(intern(lit("ulonglong"), user_package),
- type_by_size[1][sizeof (long long)]);
+ type_by_size[1][sizeof (longlong_t)]);
+#endif
}
#if HAVE_LIBFFI