浏览代码

math: add __math_invalidl

for targets where long double is different from double.
Szabolcs Nagy 4 年之前
父节点
当前提交
4f893997e4
共有 2 个文件被更改,包括 12 次插入0 次删除
  1. 3 0
      src/internal/libm.h
  2. 9 0
      src/math/__math_invalidl.c

+ 3 - 0
src/internal/libm.h

@@ -267,5 +267,8 @@ hidden double __math_uflow(uint32_t);
 hidden double __math_oflow(uint32_t);
 hidden double __math_divzero(uint32_t);
 hidden double __math_invalid(double);
+#if LDBL_MANT_DIG != DBL_MANT_DIG
+hidden long double __math_invalidl(long double);
+#endif
 
 #endif

+ 9 - 0
src/math/__math_invalidl.c

@@ -0,0 +1,9 @@
+#include <float.h>
+#include "libm.h"
+
+#if LDBL_MANT_DIG != DBL_MANT_DIG
+long double __math_invalidl(long double x)
+{
+	return (x - x) / (x - x);
+}
+#endif