aboutsummaryrefslogtreecommitdiff
path: root/libgfortran
diff options
context:
space:
mode:
authorAndreas Schwab <schwab@linux-m68k.org>2021-09-10 17:33:09 +0200
committerAndreas Schwab <schwab@linux-m68k.org>2021-09-13 10:04:01 +0200
commitfc4a29c0781186269dc5f668e76ecea82030dde3 (patch)
tree9a8e9124fca4ff7cc2f1f13d20341202043d3185 /libgfortran
parentfbeead55e03711fb39429ab564a0d8a0b43e9a74 (diff)
downloadgcc-fc4a29c0781186269dc5f668e76ecea82030dde3.zip
gcc-fc4a29c0781186269dc5f668e76ecea82030dde3.tar.gz
gcc-fc4a29c0781186269dc5f668e76ecea82030dde3.tar.bz2
libgfortran: Handle m68k extended real format in ISO_Fortran_binding.h
libgfortran/ * ISO_Fortran_binding.h (CFI_type_long_double) (CFI_type_long_double_Complex) [LDBL_MANT_DIG == 64 && LDBL_MIN_EXP == -16382 && LDBL_MAX_EXP == 16384]: Define.
Diffstat (limited to 'libgfortran')
-rw-r--r--libgfortran/ISO_Fortran_binding.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/libgfortran/ISO_Fortran_binding.h b/libgfortran/ISO_Fortran_binding.h
index 5335ea4..9c42464 100644
--- a/libgfortran/ISO_Fortran_binding.h
+++ b/libgfortran/ISO_Fortran_binding.h
@@ -233,6 +233,13 @@ extern int CFI_setpointer (CFI_cdesc_t *, CFI_cdesc_t *, const CFI_index_t []);
#define CFI_type_long_double (CFI_type_Real + (10 << CFI_type_kind_shift))
#define CFI_type_long_double_Complex (CFI_type_Complex + (10 << CFI_type_kind_shift))
+/* This is the 96-bit encoding on m68k; Fortran assigns it kind 10. */
+#elif (LDBL_MANT_DIG == 64 \
+ && LDBL_MIN_EXP == -16382 \
+ && LDBL_MAX_EXP == 16384)
+#define CFI_type_long_double (CFI_type_Real + (10 << CFI_type_kind_shift))
+#define CFI_type_long_double_Complex (CFI_type_Complex + (10 << CFI_type_kind_shift))
+
/* This is the IEEE 128-bit encoding, same as float128. */
#elif (LDBL_MANT_DIG == 113 \
&& LDBL_MIN_EXP == -16381 \