소스 검색

always provide __fpclassifyl and __signbitl definitions

previously the external definitions of these functions were omitted on
archs where long double is the same as double, since the code paths in
the math.h macros which would call them are unreachable. however, even
if they are unreachable, the definitions are still mandatory. omitting
them is invalid C, and in the case of a non-optimizing compiler, will
result in a link error.
Rich Felker 10 년 전
부모
커밋
0539e6dad3
2개의 변경된 파일9개의 추가작업 그리고 1개의 파일을 삭제
  1. 4 1
      src/math/__fpclassifyl.c
  2. 5 0
      src/math/__signbitl.c

+ 4 - 1
src/math/__fpclassifyl.c

@@ -1,7 +1,10 @@
 #include "libm.h"
 
 #if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
-
+int __fpclassifyl(long double x)
+{
+	return __fpclassify(x);
+}
 #elif LDBL_MANT_DIG == 64 && LDBL_MAX_EXP == 16384
 int __fpclassifyl(long double x)
 {

+ 5 - 0
src/math/__signbitl.c

@@ -6,4 +6,9 @@ int __signbitl(long double x)
 	union ldshape u = {x};
 	return u.i.se >> 15;
 }
+#elif LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
+int __signbitl(long double x)
+{
+	return __signbit(x);
+}
 #endif