|
I found math fpclassify function is broken because FP_XXX definitions
in libm/fp_private.h is incompatible with include/math.h.
Also I noticed fp_private.h and fpmacros.c use many 'long int' for
32bit variables. I think these should be int or u_int32_t.
Here is a patch against 0.9.20.
fp_private.c:
--- fix union members (use u_int32_t instead of 'unsigned long int').
--- remove incompatible FP_XXX definitions (and some unused macros).
fpmacros.c:
--- use FP_NAN instead of FP_QNAN/FP_SNAN.
--- use correct type (int instead of long int).
--- fix union members (use u_int32_t instead of 'unsigned long int').
--- remove unnecessary cast.
Note that I had to remove weak_alias for isnanl,isinfl to compile
patched fpmacroc.c. Is this really needed? Original behavior (using
isnan for isnanl) seems problematic anyway.
|