fix malloc-brk-fail
[libc-test] / src / api / math.c
index 20819d9..5d6d3f0 100644 (file)
@@ -1,26 +1,26 @@
 #include <math.h>
 #define T(t) (t*)0;
 #define C(n) switch(n){case n:;}
-#define I(n) {int i = n;}
+#define I(t,e) {t x[sizeof(t)==sizeof(e)] = {e};}
 #define D(n) {double d = n;}
 static void f()
 {
 T(float_t)
 T(double_t)
-I(fpclassify(.0))
-I(isfinite(.0))
-I(isgreater(.0,.0))
-I(isgreaterequal(.0,.0))
-I(isinf(.0))
-I(isless(.0,.0))
-I(islessequal(.0,.0))
-I(islessgreater(.0,.0))
-I(isnan(.0))
-I(isnormal(.0))
-I(isunordered(.0,.0))
-I(signbit(.0))
+I(int,fpclassify(.0))
+I(int,isfinite(.0))
+I(int,isgreater(.0,.0))
+I(int,isgreaterequal(.0,.0))
+I(int,isinf(.0))
+I(int,isless(.0,.0))
+I(int,islessequal(.0,.0))
+I(int,islessgreater(.0,.0))
+I(int,isnan(.0))
+I(int,isnormal(.0))
+I(int,isunordered(.0,.0))
+I(int,signbit(.0))
 #ifdef _XOPEN_SOURCE
-I(signgam)
+I(int,signgam)
 D(M_E)
 D(M_LOG2E)
 D(M_LOG10E)
@@ -51,185 +51,185 @@ C(FP_ILOGBNAN)
 C(MATH_ERRNO)
 C(MATH_ERREXCEPT)
 C(math_errhandling)
-double(*p_acos)(double) = acos;
-float(*p_acosf)(float) = acosf;
-double(*p_acosh)(double) = acosh;
-float(*p_acoshf)(float) = acoshf;
-long double(*p_acoshl)(long double) = acoshl;
-long double(*p_acosl)(long double) = acosl;
-double(*p_asin)(double) = asin;
-float(*p_asinf)(float) = asinf;
-double(*p_asinh)(double) = asinh;
-float(*p_asinhf)(float) = asinhf;
-long double(*p_asinhl)(long double) = asinhl;
-long double(*p_asinl)(long double) = asinl;
-double(*p_atan)(double) = atan;
-double(*p_atan2)(double,double) = atan2;
-float(*p_atan2f)(float,float) = atan2f;
-long double(*p_atan2l)(long double,long double) = atan2l;
-float(*p_atanf)(float) = atanf;
-double(*p_atanh)(double) = atanh;
-float(*p_atanhf)(float) = atanhf;
-long double(*p_atanhl)(long double) = atanhl;
-long double(*p_atanl)(long double) = atanl;
-double(*p_cbrt)(double) = cbrt;
-float(*p_cbrtf)(float) = cbrtf;
-long double(*p_cbrtl)(long double) = cbrtl;
-double(*p_ceil)(double) = ceil;
-float(*p_ceilf)(float) = ceilf;
-long double(*p_ceill)(long double) = ceill;
-double(*p_copysign)(double,double) = copysign;
-float(*p_copysignf)(float,float) = copysignf;
-long double(*p_copysignl)(long double,long double) = copysignl;
-double(*p_cos)(double) = cos;
-float(*p_cosf)(float) = cosf;
-double(*p_cosh)(double) = cosh;
-float(*p_coshf)(float) = coshf;
-long double(*p_coshl)(long double) = coshl;
-long double(*p_cosl)(long double) = cosl;
-double(*p_erf)(double) = erf;
-double(*p_erfc)(double) = erfc;
-float(*p_erfcf)(float) = erfcf;
-long double(*p_erfcl)(long double) = erfcl;
-float(*p_erff)(float) = erff;
-long double(*p_erfl)(long double) = erfl;
-double(*p_exp)(double) = exp;
-double(*p_exp2)(double) = exp2;
-float(*p_exp2f)(float) = exp2f;
-long double(*p_exp2l)(long double) = exp2l;
-float(*p_expf)(float) = expf;
-long double(*p_expl)(long double) = expl;
-double(*p_expm1)(double) = expm1;
-float(*p_expm1f)(float) = expm1f;
-long double(*p_expm1l)(long double) = expm1l;
-double(*p_fabs)(double) = fabs;
-float(*p_fabsf)(float) = fabsf;
-long double(*p_fabsl)(long double) = fabsl;
-double(*p_fdim)(double,double) = fdim;
-float(*p_fdimf)(float,float) = fdimf;
-long double(*p_fdiml)(long double,long double) = fdiml;
-double(*p_floor)(double) = floor;
-float(*p_floorf)(float) = floorf;
-long double(*p_floorl)(long double) = floorl;
-double(*p_fma)(double,double,double) = fma;
-float(*p_fmaf)(float,float,float) = fmaf;
-long double(*p_fmal)(long double,long double,long double) = fmal;
-double(*p_fmax)(double,double) = fmax;
-float(*p_fmaxf)(float,float) = fmaxf;
-long double(*p_fmaxl)(long double,long double) = fmaxl;
-double(*p_fmin)(double,double) = fmin;
-float(*p_fminf)(float,float) = fminf;
-long double(*p_fminl)(long double,long double) = fminl;
-double(*p_fmod)(double,double) = fmod;
-float(*p_fmodf)(float,float) = fmodf;
-long double(*p_fmodl)(long double,long double) = fmodl;
-double(*p_frexp)(double,int*) = frexp;
-float(*p_frexpf)(float,int*) = frexpf;
-long double(*p_frexpl)(long double,int*) = frexpl;
-double(*p_hypot)(double,double) = hypot;
-float(*p_hypotf)(float,float) = hypotf;
-long double(*p_hypotl)(long double,long double) = hypotl;
-int(*p_ilogb)(double) = ilogb;
-int(*p_ilogbf)(float) = ilogbf;
-int(*p_ilogbl)(long double) = ilogbl;
+{double(*p)(double) = acos;}
+{float(*p)(float) = acosf;}
+{double(*p)(double) = acosh;}
+{float(*p)(float) = acoshf;}
+{long double(*p)(long double) = acoshl;}
+{long double(*p)(long double) = acosl;}
+{double(*p)(double) = asin;}
+{float(*p)(float) = asinf;}
+{double(*p)(double) = asinh;}
+{float(*p)(float) = asinhf;}
+{long double(*p)(long double) = asinhl;}
+{long double(*p)(long double) = asinl;}
+{double(*p)(double) = atan;}
+{double(*p)(double,double) = atan2;}
+{float(*p)(float,float) = atan2f;}
+{long double(*p)(long double,long double) = atan2l;}
+{float(*p)(float) = atanf;}
+{double(*p)(double) = atanh;}
+{float(*p)(float) = atanhf;}
+{long double(*p)(long double) = atanhl;}
+{long double(*p)(long double) = atanl;}
+{double(*p)(double) = cbrt;}
+{float(*p)(float) = cbrtf;}
+{long double(*p)(long double) = cbrtl;}
+{double(*p)(double) = ceil;}
+{float(*p)(float) = ceilf;}
+{long double(*p)(long double) = ceill;}
+{double(*p)(double,double) = copysign;}
+{float(*p)(float,float) = copysignf;}
+{long double(*p)(long double,long double) = copysignl;}
+{double(*p)(double) = cos;}
+{float(*p)(float) = cosf;}
+{double(*p)(double) = cosh;}
+{float(*p)(float) = coshf;}
+{long double(*p)(long double) = coshl;}
+{long double(*p)(long double) = cosl;}
+{double(*p)(double) = erf;}
+{double(*p)(double) = erfc;}
+{float(*p)(float) = erfcf;}
+{long double(*p)(long double) = erfcl;}
+{float(*p)(float) = erff;}
+{long double(*p)(long double) = erfl;}
+{double(*p)(double) = exp;}
+{double(*p)(double) = exp2;}
+{float(*p)(float) = exp2f;}
+{long double(*p)(long double) = exp2l;}
+{float(*p)(float) = expf;}
+{long double(*p)(long double) = expl;}
+{double(*p)(double) = expm1;}
+{float(*p)(float) = expm1f;}
+{long double(*p)(long double) = expm1l;}
+{double(*p)(double) = fabs;}
+{float(*p)(float) = fabsf;}
+{long double(*p)(long double) = fabsl;}
+{double(*p)(double,double) = fdim;}
+{float(*p)(float,float) = fdimf;}
+{long double(*p)(long double,long double) = fdiml;}
+{double(*p)(double) = floor;}
+{float(*p)(float) = floorf;}
+{long double(*p)(long double) = floorl;}
+{double(*p)(double,double,double) = fma;}
+{float(*p)(float,float,float) = fmaf;}
+{long double(*p)(long double,long double,long double) = fmal;}
+{double(*p)(double,double) = fmax;}
+{float(*p)(float,float) = fmaxf;}
+{long double(*p)(long double,long double) = fmaxl;}
+{double(*p)(double,double) = fmin;}
+{float(*p)(float,float) = fminf;}
+{long double(*p)(long double,long double) = fminl;}
+{double(*p)(double,double) = fmod;}
+{float(*p)(float,float) = fmodf;}
+{long double(*p)(long double,long double) = fmodl;}
+{double(*p)(double,int*) = frexp;}
+{float(*p)(float,int*) = frexpf;}
+{long double(*p)(long double,int*) = frexpl;}
+{double(*p)(double,double) = hypot;}
+{float(*p)(float,float) = hypotf;}
+{long double(*p)(long double,long double) = hypotl;}
+{int(*p)(double) = ilogb;}
+{int(*p)(float) = ilogbf;}
+{int(*p)(long double) = ilogbl;}
 #ifdef _XOPEN_SOURCE
-double(*p_j0)(double) = j0;
-double(*p_j1)(double) = j1;
-double(*p_jn)(int,double) = jn;
+{double(*p)(double) = j0;}
+{double(*p)(double) = j1;}
+{double(*p)(int,double) = jn;}
 #endif
-double(*p_ldexp)(double,int) = ldexp;
-float(*p_ldexpf)(float,int) = ldexpf;
-long double(*p_ldexpl)(long double,int) = ldexpl;
-double(*p_lgamma)(double) = lgamma;
-float(*p_lgammaf)(float) = lgammaf;
-long double(*p_lgammal)(long double) = lgammal;
-long long(*p_llrint)(double) = llrint;
-long long(*p_llrintf)(float) = llrintf;
-long long(*p_llrintl)(long double) = llrintl;
-long long(*p_llround)(double) = llround;
-long long(*p_llroundf)(float) = llroundf;
-long long(*p_llroundl)(long double) = llroundl;
-double(*p_log)(double) = log;
-double(*p_log10)(double) = log10;
-float(*p_log10f)(float) = log10f;
-long double(*p_log10l)(long double) = log10l;
-double(*p_log1p)(double) = log1p;
-float(*p_log1pf)(float) = log1pf;
-long double(*p_log1pl)(long double) = log1pl;
-double(*p_log2)(double) = log2;
-float(*p_log2f)(float) = log2f;
-long double(*p_log2l)(long double) = log2l;
-double(*p_logb)(double) = logb;
-float(*p_logbf)(float) = logbf;
-long double(*p_logbl)(long double) = logbl;
-float(*p_logf)(float) = logf;
-long double(*p_logl)(long double) = logl;
-long(*p_lrint)(double) = lrint;
-long(*p_lrintf)(float) = lrintf;
-long(*p_lrintl)(long double) = lrintl;
-long(*p_lround)(double) = lround;
-long(*p_lroundf)(float) = lroundf;
-long(*p_lroundl)(long double) = lroundl;
-double(*p_modf)(double,double*) = modf;
-float(*p_modff)(float,float*) = modff;
-long double(*p_modfl)(long double,long double*) = modfl;
-double(*p_nan)(const char*) = nan;
-float(*p_nanf)(const char*) = nanf;
-long double(*p_nanl)(const char*) = nanl;
-double(*p_nearbyint)(double) = nearbyint;
-float(*p_nearbyintf)(float) = nearbyintf;
-long double(*p_nearbyintl)(long double) = nearbyintl;
-double(*p_nextafter)(double,double) = nextafter;
-float(*p_nextafterf)(float,float) = nextafterf;
-long double(*p_nextafterl)(long double,long double) = nextafterl;
-double(*p_nexttoward)(double,long double) = nexttoward;
-float(*p_nexttowardf)(float,long double) = nexttowardf;
-long double(*p_nexttowardl)(long double,long double) = nexttowardl;
-double(*p_pow)(double,double) = pow;
-float(*p_powf)(float,float) = powf;
-long double(*p_powl)(long double,long double) = powl;
-double(*p_remainder)(double,double) = remainder;
-float(*p_remainderf)(float,float) = remainderf;
-long double(*p_remainderl)(long double,long double) = remainderl;
-double(*p_remquo)(double,double,int*) = remquo;
-float(*p_remquof)(float,float,int*) = remquof;
-long double(*p_remquol)(long double,long double,int*) = remquol;
-double(*p_rint)(double) = rint;
-float(*p_rintf)(float) = rintf;
-long double(*p_rintl)(long double) = rintl;
-double(*p_round)(double) = round;
-float(*p_roundf)(float) = roundf;
-long double(*p_roundl)(long double) = roundl;
-double(*p_scalbln)(double,long) = scalbln;
-float(*p_scalblnf)(float,long) = scalblnf;
-long double(*p_scalblnl)(long double,long) = scalblnl;
-double(*p_scalbn)(double,int) = scalbn;
-float(*p_scalbnf)(float,int) = scalbnf;
-long double(*p_scalbnl)(long double,int) = scalbnl;
-double(*p_sin)(double) = sin;
-float(*p_sinf)(float) = sinf;
-double(*p_sinh)(double) = sinh;
-float(*p_sinhf)(float) = sinhf;
-long double(*p_sinhl)(long double) = sinhl;
-long double(*p_sinl)(long double) = sinl;
-double(*p_sqrt)(double) = sqrt;
-float(*p_sqrtf)(float) = sqrtf;
-long double(*p_sqrtl)(long double) = sqrtl;
-double(*p_tan)(double) = tan;
-float(*p_tanf)(float) = tanf;
-double(*p_tanh)(double) = tanh;
-float(*p_tanhf)(float) = tanhf;
-long double(*p_tanhl)(long double) = tanhl;
-long double(*p_tanl)(long double) = tanl;
-double(*p_tgamma)(double) = tgamma;
-float(*p_tgammaf)(float) = tgammaf;
-long double(*p_tgammal)(long double) = tgammal;
-double(*p_trunc)(double) = trunc;
-float(*p_truncf)(float) = truncf;
-long double(*p_truncl)(long double) = truncl;
+{double(*p)(double,int) = ldexp;}
+{float(*p)(float,int) = ldexpf;}
+{long double(*p)(long double,int) = ldexpl;}
+{double(*p)(double) = lgamma;}
+{float(*p)(float) = lgammaf;}
+{long double(*p)(long double) = lgammal;}
+{long long(*p)(double) = llrint;}
+{long long(*p)(float) = llrintf;}
+{long long(*p)(long double) = llrintl;}
+{long long(*p)(double) = llround;}
+{long long(*p)(float) = llroundf;}
+{long long(*p)(long double) = llroundl;}
+{double(*p)(double) = log;}
+{double(*p)(double) = log10;}
+{float(*p)(float) = log10f;}
+{long double(*p)(long double) = log10l;}
+{double(*p)(double) = log1p;}
+{float(*p)(float) = log1pf;}
+{long double(*p)(long double) = log1pl;}
+{double(*p)(double) = log2;}
+{float(*p)(float) = log2f;}
+{long double(*p)(long double) = log2l;}
+{double(*p)(double) = logb;}
+{float(*p)(float) = logbf;}
+{long double(*p)(long double) = logbl;}
+{float(*p)(float) = logf;}
+{long double(*p)(long double) = logl;}
+{long(*p)(double) = lrint;}
+{long(*p)(float) = lrintf;}
+{long(*p)(long double) = lrintl;}
+{long(*p)(double) = lround;}
+{long(*p)(float) = lroundf;}
+{long(*p)(long double) = lroundl;}
+{double(*p)(double,double*) = modf;}
+{float(*p)(float,float*) = modff;}
+{long double(*p)(long double,long double*) = modfl;}
+{double(*p)(const char*) = nan;}
+{float(*p)(const char*) = nanf;}
+{long double(*p)(const char*) = nanl;}
+{double(*p)(double) = nearbyint;}
+{float(*p)(float) = nearbyintf;}
+{long double(*p)(long double) = nearbyintl;}
+{double(*p)(double,double) = nextafter;}
+{float(*p)(float,float) = nextafterf;}
+{long double(*p)(long double,long double) = nextafterl;}
+{double(*p)(double,long double) = nexttoward;}
+{float(*p)(float,long double) = nexttowardf;}
+{long double(*p)(long double,long double) = nexttowardl;}
+{double(*p)(double,double) = pow;}
+{float(*p)(float,float) = powf;}
+{long double(*p)(long double,long double) = powl;}
+{double(*p)(double,double) = remainder;}
+{float(*p)(float,float) = remainderf;}
+{long double(*p)(long double,long double) = remainderl;}
+{double(*p)(double,double,int*) = remquo;}
+{float(*p)(float,float,int*) = remquof;}
+{long double(*p)(long double,long double,int*) = remquol;}
+{double(*p)(double) = rint;}
+{float(*p)(float) = rintf;}
+{long double(*p)(long double) = rintl;}
+{double(*p)(double) = round;}
+{float(*p)(float) = roundf;}
+{long double(*p)(long double) = roundl;}
+{double(*p)(double,long) = scalbln;}
+{float(*p)(float,long) = scalblnf;}
+{long double(*p)(long double,long) = scalblnl;}
+{double(*p)(double,int) = scalbn;}
+{float(*p)(float,int) = scalbnf;}
+{long double(*p)(long double,int) = scalbnl;}
+{double(*p)(double) = sin;}
+{float(*p)(float) = sinf;}
+{double(*p)(double) = sinh;}
+{float(*p)(float) = sinhf;}
+{long double(*p)(long double) = sinhl;}
+{long double(*p)(long double) = sinl;}
+{double(*p)(double) = sqrt;}
+{float(*p)(float) = sqrtf;}
+{long double(*p)(long double) = sqrtl;}
+{double(*p)(double) = tan;}
+{float(*p)(float) = tanf;}
+{double(*p)(double) = tanh;}
+{float(*p)(float) = tanhf;}
+{long double(*p)(long double) = tanhl;}
+{long double(*p)(long double) = tanl;}
+{double(*p)(double) = tgamma;}
+{float(*p)(float) = tgammaf;}
+{long double(*p)(long double) = tgammal;}
+{double(*p)(double) = trunc;}
+{float(*p)(float) = truncf;}
+{long double(*p)(long double) = truncl;}
 #ifdef _XOPEN_SOURCE
-double(*p_y0)(double) = y0;
-double(*p_y1)(double) = y1;
-double(*p_yn)(int,double) = yn;
+{double(*p)(double) = y0;}
+{double(*p)(double) = y1;}
+{double(*p)(int,double) = yn;}
 #endif
 }