fix public clone function to be safe and usable by applications
[musl] / src / internal / libm.h
index 98bf5c6..72ad17d 100644 (file)
@@ -64,6 +64,13 @@ union ldshape {
 /* Support signaling NaNs.  */
 #define WANT_SNAN 0
 
+#if WANT_SNAN
+#error SNaN is unsupported
+#else
+#define issignalingf_inline(x) 0
+#define issignaling_inline(x) 0
+#endif
+
 #ifndef TOINT_INTRINSICS
 #define TOINT_INTRINSICS 0
 #endif
@@ -147,7 +154,8 @@ static inline long double fp_barrierl(long double x)
 #define fp_force_evalf fp_force_evalf
 static inline void fp_force_evalf(float x)
 {
-       volatile float y = x;
+       volatile float y;
+       y = x;
 }
 #endif
 
@@ -155,7 +163,8 @@ static inline void fp_force_evalf(float x)
 #define fp_force_eval fp_force_eval
 static inline void fp_force_eval(double x)
 {
-       volatile double y = x;
+       volatile double y;
+       y = x;
 }
 #endif
 
@@ -163,7 +172,8 @@ static inline void fp_force_eval(double x)
 #define fp_force_evall fp_force_evall
 static inline void fp_force_evall(long double x)
 {
-       volatile long double y = x;
+       volatile long double y;
+       y = x;
 }
 #endif
 
@@ -226,13 +236,13 @@ hidden int    __rem_pio2(double,double*);
 hidden double __sin(double,double,int);
 hidden double __cos(double,double);
 hidden double __tan(double,double,int);
-hidden double __expo2(double);
+hidden double __expo2(double,double);
 
 hidden int    __rem_pio2f(float,double*);
 hidden float  __sindf(double);
 hidden float  __cosdf(double);
 hidden float  __tandf(double,int);
-hidden float  __expo2f(float);
+hidden float  __expo2f(float,float);
 
 hidden int __rem_pio2l(long double, long double *);
 hidden long double __sinl(long double, long double, int);
@@ -257,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