Date: Mon, 19 Feb 2018 19:01:02 -0800 From: Eitan Adler <lists@eitanadler.com> To: freebsd-numerics@freebsd.org Subject: Marking more functions as pure / const Message-ID: <CAF6rxgkniO3y-pQLnba=thkBN0QSis8pFG2mGGSGUY0av1mhAw@mail.gmail.com>
next in thread | raw e-mail | index | archive | help
There are a few functions that are explicitly marked as "not pure2" (const) but can be marked as pure. The difference between them is "does the function /read/ from global memory?". Is there anything wrong with this diff? Not touched are all the other functions which all seem to at least be __pure if not __pure2. Index: lib/msun/src/math.h =================================================================== --- lib/msun/src/math.h (revision 329611) +++ lib/msun/src/math.h (working copy) @@ -242,11 +242,11 @@ double sinh(double); double tanh(double); double exp(double); -double frexp(double, int *); /* fundamentally !__pure2 */ +double frexp(double, int *) __pure; /* fundamentally !__pure2 */ double ldexp(double, int); double log(double); double log10(double); -double modf(double, double *); /* fundamentally !__pure2 */ +double modf(double, double *) __pure; /* fundamentally !__pure2 */ double pow(double, double); double sqrt(double); @@ -354,7 +354,7 @@ float tanhf(float); float exp2f(float); float expf(float); float expm1f(float); -float frexpf(float, int *); /* fundamentally !__pure2 */ +float frexpf(float, int *) __pure; /* fundamentally !__pure2 */ int ilogbf(float) __pure2; float ldexpf(float, int); float log10f(float); @@ -361,7 +361,7 @@ float log10f(float); float log1pf(float); float log2f(float); float logf(float); -float modff(float, float *); /* fundamentally !__pure2 */ +float modff(float, float *) __pure; /* fundamentally !__pure2 */ float powf(float, float); float sqrtf(float); @@ -461,7 +461,7 @@ long double fmal(long double, long double, long do long double fmaxl(long double, long double) __pure2; long double fminl(long double, long double) __pure2; long double fmodl(long double, long double); -long double frexpl(long double, int *); /* fundamentally !__pure2 */ +long double frexpl(long double, int *) __pure; /* fundamentally !__pure2 */ long double hypotl(long double, long double); int ilogbl(long double) __pure2; long double ldexpl(long double, int); @@ -475,7 +475,7 @@ long double logbl(long double); long double logl(long double); long lrintl(long double); long lroundl(long double); -long double modfl(long double, long double *); /* fundamentally !__pure2 */ +long double modfl(long double, long double *) __pure; /* fundamentally !__pure2 */ long double nanl(const char *) __pure2; long double nearbyintl(long double); long double nextafterl(long double, long double); -- Eitan Adler
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAF6rxgkniO3y-pQLnba=thkBN0QSis8pFG2mGGSGUY0av1mhAw>