From a05a144b13bc695e0c16c5c0ff29d9da782cd32f Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Tue, 1 May 2012 19:59:15 +0000 Subject: [PATCH] conformtest: Improve math.h tests for X/Open versions. --- ChangeLog | 191 +++++++++++++++++++++++++++++++++++++++++++++++ conform/data/math.h-data | 41 +++++----- 2 files changed, 213 insertions(+), 19 deletions(-) diff --git a/ChangeLog b/ChangeLog index 5edfd3e..43f556c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,196 @@ 2012-05-01 Joseph Myers + * conform/data/math.h-data [XPG3 || XPG4 || UNIX98] (fpclassify): + Do not expect macro. + [XPG3 || XPG4 || UNIX98] (isfinite): Likewise. + [XPG3 || XPG4 || UNIX98] (isinf): Likewise. + [XPG3 || XPG4 || UNIX98] (isnan): Likewise. + [XPG3 || XPG4 || UNIX98] (isnormal): Likewise. + [XPG3 || XPG4 || UNIX98] (signbit): Likewise. + [XPG3 || XPG4 || UNIX98] (isgreater): Likewise. + [XPG3 || XPG4 || UNIX98] (isgreaterequal): Likewise. + [XPG3 || XPG4 || UNIX98] (isless): Likewise. + [XPG3 || XPG4 || UNIX98] (islessequal): Likewise. + [XPG3 || XPG4 || UNIX98] (islessgreater): Likewise. + [XPG3 || XPG4 || UNIX98] (isunordered): Likewise. + [XPG3 || XPG4 || UNIX98] (isnan): Expect as function. + [XPG3 || XPG4 || UNIX98] (HUGE_VALF): Do not expect. + [XPG3 || XPG4 || UNIX98] (HUGE_VALL): Likewise. + [XPG3 || XPG4 || UNIX98] (INFINITY): Likewise. + [XPG3 || XPG4 || UNIX98] (NAN): Likewise. + [XPG3 || XPG4 || UNIX98] (FP_INFINITE): Likewise. + [XPG3 || XPG4 || UNIX98] (FP_NAN): Likewise. + [XPG3 || XPG4 || UNIX98] (FP_NORMAL): Likewise. + [XPG3 || XPG4 || UNIX98] (FP_SUBNORMAL): Likewise. + [XPG3 || XPG4 || UNIX98] (FP_ZERO): Likewise. + [XPG3 || XPG4 || UNIX98] (FP_FAST_FMA): Likewise. + [XPG3 || XPG4 || UNIX98] (FP_FAST_FMAF): Likewise. + [XPG3 || XPG4 || UNIX98] (FP_FAST_FMAL): Likewise. + [XPG3 || XPG4 || UNIX98] (FP_ILOGB0): Likewise. + [XPG3 || XPG4 || UNIX98] (FP_ILOGBNAN): Likewise. + [XPG3 || XPG4 || UNIX98] (copysign): Likewise. + [XPG3 || XPG4 || UNIX98] (exp2): Likewise. + [XPG3 || XPG4 || UNIX98] (log2): Likewise. + [XPG3 || XPG4 || UNIX98] (tgama): Likewise. + [XPG3] (acosh): Likewise. + [XPG3] (asinh): Likewise. + [XPG3] (atanh): Likewise. + [XPG3] (cbrt): Likewise. + [XPG3] (expm1): Likewise. + [XPG3] (ilogb): Likewise. + [XPG3] (log1p): Likewise. + [XPG3] (logb): Likewise. + [XPG3] (nextafter): Likewise. + [XPG3 || XPG4 || UNIX98] (nexttoward): Likewise. + [XPG3 || XPG4 || UNIX98] (nearbyint): Likewise. + [XPG3] (remainder): Likewise. + [XPG3] (rint): Likewise. + [XPG3 || XPG4 || UNIX98] (round): Likewise. + [XPG3 || XPG4 || UNIX98] (trunc): Likewise. + [XPG3 || XPG4 || UNIX98] (lrint): Likewise. + [XPG3 || XPG4 || UNIX98] (llrint): Likewise. + [XPG3 || XPG4 || UNIX98] (lround): Likewise. + [XPG3 || XPG4 || UNIX98] (llround): Likewise. + [XPG3 || XPG4 || UNIX98] (remquo): Likewise. + [UNIX98 || XOPEN2K] (scalb): Expect. + [XPG3 || XPG4 || UNIX98] (scalbn): Do not expect. + [XPG3 || XPG4 || UNIX98] (scalbln): Likewise. + [XPG3 || XPG4 || UNIX98] (fdim): Likewise. + [XPG3 || XPG4 || UNIX98] (fmax): Likewise. + [XPG3 || XPG4 || UNIX98] (fmin): Likewise. + [XPG3 || XPG4 || UNIX98] (fma): Likewise. + [XPG3 || XPG4 || UNIX98] (nan): Likewise. + [XPG3 || XPG4 || UNIX98] (acosf): Likewise. + [XPG3 || XPG4 || UNIX98] (asinf): Likewise. + [XPG3 || XPG4 || UNIX98] (atanf): Likewise. + [XPG3 || XPG4 || UNIX98] (atan2f): Likewise. + [XPG3 || XPG4 || UNIX98] (ceilf): Likewise. + [XPG3 || XPG4 || UNIX98] (copysignf): Likewise. + [XPG3 || XPG4 || UNIX98] (cosf): Likewise. + [XPG3 || XPG4 || UNIX98] (coshf): Likewise. + [XPG3 || XPG4 || UNIX98] (expf): Likewise. + [XPG3 || XPG4 || UNIX98] (exp2f): Likewise. + [XPG3 || XPG4 || UNIX98] (fabsf): Likewise. + [XPG3 || XPG4 || UNIX98] (floorf): Likewise. + [XPG3 || XPG4 || UNIX98] (fmodf): Likewise. + [XPG3 || XPG4 || UNIX98] (frexpf): Likewise. + [XPG3 || XPG4 || UNIX98] (ldexpf): Likewise. + [XPG3 || XPG4 || UNIX98] (logf): Likewise. + [XPG3 || XPG4 || UNIX98] (log10f): Likewise. + [XPG3 || XPG4 || UNIX98] (log2f): Likewise. + [XPG3 || XPG4 || UNIX98] (modff): Likewise. + [XPG3 || XPG4 || UNIX98] (powf): Likewise. + [XPG3 || XPG4 || UNIX98] (sinf): Likewise. + [XPG3 || XPG4 || UNIX98] (sinhf): Likewise. + [XPG3 || XPG4 || UNIX98] (sqrtf): Likewise. + [XPG3 || XPG4 || UNIX98] (tanf): Likewise. + [XPG3 || XPG4 || UNIX98] (tanhf): Likewise. + [XPG3 || XPG4 || UNIX98] (erff): Likewise. + [XPG3 || XPG4 || UNIX98] (erfcf): Likewise. + [XPG3 || XPG4 || UNIX98] (gammaf): Likewise. + [XPG3 || XPG4 || UNIX98] (hypotf): Likewise. + [XPG3 || XPG4 || UNIX98] (j0f): Likewise. + [XPG3 || XPG4 || UNIX98] (j1f): Likewise. + [XPG3 || XPG4 || UNIX98] (jnf): Likewise. + [XPG3 || XPG4 || UNIX98] (lgammaf): Likewise. + [XPG3 || XPG4 || UNIX98] (tgammaf): Likewise. + [XPG3 || XPG4 || UNIX98] (y0f): Likewise. + [XPG3 || XPG4 || UNIX98] (y1f): Likewise. + [XPG3 || XPG4 || UNIX98] (ynf): Likewise. + [XPG3 || XPG4 || UNIX98] (acoshf): Likewise. + [XPG3 || XPG4 || UNIX98] (asinhf): Likewise. + [XPG3 || XPG4 || UNIX98] (atanhf): Likewise. + [XPG3 || XPG4 || UNIX98] (cbrtf): Likewise. + [XPG3 || XPG4 || UNIX98] (expm1f): Likewise. + [XPG3 || XPG4 || UNIX98] (ilogbf): Likewise. + [XPG3 || XPG4 || UNIX98] (log1pf): Likewise. + [XPG3 || XPG4 || UNIX98] (logbf): Likewise. + [XPG3 || XPG4 || UNIX98] (nextafterf): Likewise. + [XPG3 || XPG4 || UNIX98] (nexttowardf): Likewise. + [XPG3 || XPG4 || UNIX98] (nearbyintf): Likewise. + [XPG3 || XPG4 || UNIX98] (remainderf): Likewise. + [XPG3 || XPG4 || UNIX98] (rintf): Likewise. + [XPG3 || XPG4 || UNIX98] (roundf): Likewise. + [XPG3 || XPG4 || UNIX98] (truncf): Likewise. + [XPG3 || XPG4 || UNIX98] (lrintf): Likewise. + [XPG3 || XPG4 || UNIX98] (llrintf): Likewise. + [XPG3 || XPG4 || UNIX98] (lroundf): Likewise. + [XPG3 || XPG4 || UNIX98] (llroundf): Likewise. + [XPG3 || XPG4 || UNIX98] (remquof): Likewise. + [XPG3 || XPG4 || UNIX98] (scalbf): Likewise. + [XPG3 || XPG4 || UNIX98] (scalbnf): Likewise. + [XPG3 || XPG4 || UNIX98] (scalblnf): Likewise. + [XPG3 || XPG4 || UNIX98] (fdimf): Likewise. + [XPG3 || XPG4 || UNIX98] (fmaxf): Likewise. + [XPG3 || XPG4 || UNIX98] (fminf): Likewise. + [XPG3 || XPG4 || UNIX98] (fmaf): Likewise. + [XPG3 || XPG4 || UNIX98] (nanf): Likewise. + [XPG3 || XPG4 || UNIX98] (acosl): Likewise. + [XPG3 || XPG4 || UNIX98] (asinl): Likewise. + [XPG3 || XPG4 || UNIX98] (atanl): Likewise. + [XPG3 || XPG4 || UNIX98] (atan2l): Likewise. + [XPG3 || XPG4 || UNIX98] (ceill): Likewise. + [XPG3 || XPG4 || UNIX98] (copysignl): Likewise. + [XPG3 || XPG4 || UNIX98] (cosl): Likewise. + [XPG3 || XPG4 || UNIX98] (coshl): Likewise. + [XPG3 || XPG4 || UNIX98] (expl): Likewise. + [XPG3 || XPG4 || UNIX98] (exp2l): Likewise. + [XPG3 || XPG4 || UNIX98] (fabsl): Likewise. + [XPG3 || XPG4 || UNIX98] (floorl): Likewise. + [XPG3 || XPG4 || UNIX98] (fmodl): Likewise. + [XPG3 || XPG4 || UNIX98] (frexpl): Likewise. + [XPG3 || XPG4 || UNIX98] (ldexpl): Likewise. + [XPG3 || XPG4 || UNIX98] (logl): Likewise. + [XPG3 || XPG4 || UNIX98] (log10l): Likewise. + [XPG3 || XPG4 || UNIX98] (log2l): Likewise. + [XPG3 || XPG4 || UNIX98] (modfl): Likewise. + [XPG3 || XPG4 || UNIX98] (powl): Likewise. + [XPG3 || XPG4 || UNIX98] (sinl): Likewise. + [XPG3 || XPG4 || UNIX98] (sinhl): Likewise. + [XPG3 || XPG4 || UNIX98] (sqrtl): Likewise. + [XPG3 || XPG4 || UNIX98] (tanl): Likewise. + [XPG3 || XPG4 || UNIX98] (tanhl): Likewise. + [XPG3 || XPG4 || UNIX98] (erfl): Likewise. + [XPG3 || XPG4 || UNIX98] (erfcl): Likewise. + [XPG3 || XPG4 || UNIX98] (gammal): Likewise. + [XPG3 || XPG4 || UNIX98] (hypotl): Likewise. + [XPG3 || XPG4 || UNIX98] (j0l): Likewise. + [XPG3 || XPG4 || UNIX98] (j1l): Likewise. + [XPG3 || XPG4 || UNIX98] (jnl): Likewise. + [XPG3 || XPG4 || UNIX98] (lgammal): Likewise. + [XPG3 || XPG4 || UNIX98] (tgammal): Likewise. + [XPG3 || XPG4 || UNIX98] (y0l): Likewise. + [XPG3 || XPG4 || UNIX98] (y1l): Likewise. + [XPG3 || XPG4 || UNIX98] (ynl): Likewise. + [XPG3 || XPG4 || UNIX98] (acoshl): Likewise. + [XPG3 || XPG4 || UNIX98] (asinhl): Likewise. + [XPG3 || XPG4 || UNIX98] (atanhl): Likewise. + [XPG3 || XPG4 || UNIX98] (cbrtl): Likewise. + [XPG3 || XPG4 || UNIX98] (expm1l): Likewise. + [XPG3 || XPG4 || UNIX98] (ilogbl): Likewise. + [XPG3 || XPG4 || UNIX98] (log1pl): Likewise. + [XPG3 || XPG4 || UNIX98] (logbl): Likewise. + [XPG3 || XPG4 || UNIX98] (nextafterl): Likewise. + [XPG3 || XPG4 || UNIX98] (nexttowardl): Likewise. + [XPG3 || XPG4 || UNIX98] (nearbyintl): Likewise. + [XPG3 || XPG4 || UNIX98] (remainderl): Likewise. + [XPG3 || XPG4 || UNIX98] (rintl): Likewise. + [XPG3 || XPG4 || UNIX98] (roundl): Likewise. + [XPG3 || XPG4 || UNIX98] (truncl): Likewise. + [XPG3 || XPG4 || UNIX98] (lrintl): Likewise. + [XPG3 || XPG4 || UNIX98] (llrintl): Likewise. + [XPG3 || XPG4 || UNIX98] (lroundl): Likewise. + [XPG3 || XPG4 || UNIX98] (llroundl): Likewise. + [XPG3 || XPG4 || UNIX98] (remquol): Likewise. + [XPG3 || XPG4 || UNIX98] (scalbl): Likewise. + [XPG3 || XPG4 || UNIX98] (scalbnl): Likewise. + [XPG3 || XPG4 || UNIX98] (scalblnl): Likewise. + [XPG3 || XPG4 || UNIX98] (fdiml): Likewise. + [XPG3 || XPG4 || UNIX98] (fmaxl): Likewise. + [XPG3 || XPG4 || UNIX98] (fminl): Likewise. + [XPG3 || XPG4 || UNIX98] (fmal): Likewise. + [XPG3 || XPG4 || UNIX98] (nanl): Likewise. + * conform/conformtest.pl: Define _XOPEN_SOURCE as well as _XOPEN_SOURCE_EXTENDED for XPG4. diff --git a/conform/data/math.h-data b/conform/data/math.h-data index 5f1f11d..ce41dc5 100644 --- a/conform/data/math.h-data +++ b/conform/data/math.h-data @@ -1,6 +1,7 @@ constant HUGE_VAL #if !defined ISO && !defined POSIX +# if !defined XPG3 && !defined XPG4 && !defined UNIX98 macro fpclassify macro isfinite macro isinf @@ -13,6 +14,10 @@ macro isless macro islessequal macro islessgreater macro isunordered +# endif +# if defined XPG3 || defined XPG4 || defined UNIX98 +function double isnan (double) +# endif # if !defined ISO99 && !defined ISO11 && !defined POSIX2008 constant M_E @@ -31,6 +36,7 @@ constant M_SQRT1_2 constant MAXFLOAT # endif +# if !defined XPG3 && !defined XPG4 && !defined UNIX98 constant HUGE_VALF constant HUGE_VALL constant INFINITY @@ -49,7 +55,6 @@ optional-macro FP_FAST_FMAL constant FP_ILOGB0 constant FP_ILOGBNAN -# if !defined XPG3 && !defined XPG4 && !defined UNIX98 macro MATH_ERRNO == 1 macro MATH_ERREXCEPT == 2 @@ -62,13 +67,13 @@ function double asin (double) function double atan (double) function double atan2 (double, double) function double ceil (double) -#if !defined ISO && !defined POSIX +#if !defined ISO && !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98 function double copysign (double, double) #endif function double cos (double) function double cosh (double) function double exp (double) -#if !defined ISO && !defined POSIX +#if !defined ISO && !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98 function double exp2 (double) #endif function double fabs (double) @@ -78,7 +83,7 @@ function double frexp (double, int*) function double ldexp (double, int) function double log (double) function double log10 (double) -#if !defined ISO && !defined POSIX +#if !defined ISO && !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98 function double log2 (double) #endif function double modf (double, double*) @@ -103,12 +108,15 @@ function double j1 (double) function double jn (int, double) # endif function double lgamma (double) +# if !defined XPG3 && !defined XPG4 && !defined UNIX98 function double tgamma (double) +# endif # if !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008 function double y0 (double) function double y1 (double) function double yn (int, double) # endif +# if !defined XPG3 function double acosh (double) function double asinh (double) function double atanh (double) @@ -118,10 +126,13 @@ function int ilogb (double) function double log1p (double) function double logb (double) function double nextafter (double, double) +# if !defined XPG4 && !defined UNIX98 function double nexttoward (double, long double) function double nearbyint (double) +# endif function double remainder (double, double) function double rint (double) +# if !defined XPG4 && !defined UNIX98 function double round (double) function double trunc (double) function long lrint (double) @@ -129,9 +140,11 @@ function {long long} llrint (double) function long lround (double) function {long long} llround (double) function double remquo (double, double, int*) -# if defined XPG3 && defined XPG4 && defined UNIX98 && defined XOPEN2K +# endif +# if defined XPG4 || defined UNIX98 || defined XOPEN2K function double scalb (double, double) -# endif +# endif +# if !defined XPG4 && !defined UNIX98 function double scalbn (double, int) function double scalbln (double, long) function double fdim (double, double) @@ -139,6 +152,8 @@ function double fmax (double, double) function double fmin (double, double) function double fma (double, double, double) function double nan (const char*) +# endif +# endif # if !defined POSIX && !defined POSIX2008 // variable signgam @@ -146,7 +161,7 @@ allow signgam # endif #endif -#if !defined ISO && !defined POSIX +#if !defined ISO && !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98 function float acosf (float) function float asinf (float) function float atanf (float) @@ -174,9 +189,6 @@ function float tanf (float) function float tanhf (float) function float erff (float) function float erfcf (float) -#if defined XPG3 || defined XPG4 || defined UNIX98 -function float gammaf (float) -#endif function float hypotf (float, float) #if !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008 function float j0f (float) @@ -210,9 +222,6 @@ function {long long} llrintf (float) function long lroundf (float) function {long long} llroundf (float) function float remquof (float, float, int*) -#if defined XPG3 && defined XPG4 && defined UNIX98 && defined XOPEN2K -function float scalbf (float, float) -#endif function float scalbnf (float, int) function float scalblnf (float, long) function float fdimf (float, float) @@ -248,9 +257,6 @@ function {long double} tanl (long double) function {long double} tanhl (long double) function {long double} erfl (long double) function {long double} erfcl (long double) -#if defined XPG3 || defined XPG4 || defined UNIX98 -function {long double} gammal (long double) -#endif function {long double} hypotl (long double, long double) #if !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008 function {long double} j0l (long double) @@ -284,9 +290,6 @@ function {long long} llrintl (long double) function long lroundl (long double) function {long long} llroundl (long double) function {long double} remquol (long double, long double, int*) -#if defined XPG3 && defined XPG4 && defined UNIX98 && defined XOPEN2K -function {long double} scalbl (long double, long double) -#endif function {long double} scalbnl (long double, int) function {long double} scalblnl (long double, long) function {long double} fdiml (long double, long double) -- 2.7.4