about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/internal/floatscan.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/internal/floatscan.c b/src/internal/floatscan.c
index f6e331d4..eef70df9 100644
--- a/src/internal/floatscan.c
+++ b/src/internal/floatscan.c
@@ -15,12 +15,20 @@
 #define LD_B1B_MAX 9007199, 254740991
 #define KMAX 128
 
-#else /* LDBL_MANT_DIG == 64 && LDBL_MAX_EXP == 16384 */
+#elif LDBL_MANT_DIG == 64 && LDBL_MAX_EXP == 16384
 
 #define LD_B1B_DIG 3
 #define LD_B1B_MAX 18, 446744073, 709551615
 #define KMAX 2048
 
+#elif LDBL_MANT_DIG == 113 && LDBL_MAX_EXP == 16384
+
+#define LD_B1B_DIG 4
+#define LD_B1B_MAX 10384593, 717069655, 257060992, 658440191
+#define KMAX 2048
+
+#else
+#error Unsupported long double representation
 #endif
 
 #define MASK (KMAX-1)