Index: ChangeLog =================================================================== RCS file: /cvs/src/src/newlib/ChangeLog,v retrieving revision 1.1474 diff -p -u -r1.1474 ChangeLog --- ChangeLog 9 Feb 2010 22:52:20 -0000 1.1474 +++ ChangeLog 11 Feb 2010 20:22:36 -0000 @@ -1,3 +1,8 @@ +2010-02-11 Craig Howland + + * libc/include/machine/ieeefp.h: isfinite macro modified to run faster + by only calling fpclassify once instead of possibly twice. + 2010-02-09 Daniel Gutson * libc/machine/arm/arm_asm.h (_ISA_THUMB_2): __ARM_ARCH_7EM__ Index: libc/include/machine/ieeefp.h =================================================================== RCS file: /cvs/src/src/newlib/libc/include/machine/ieeefp.h,v retrieving revision 1.44 diff -p -u -r1.44 ieeefp.h --- libc/include/machine/ieeefp.h 17 Dec 2009 19:26:38 -0000 1.44 +++ libc/include/machine/ieeefp.h 11 Feb 2010 20:22:36 -0000 @@ -80,10 +80,11 @@ #ifdef __SPU__ #define __IEEE_BIG_ENDIAN -#define isfinite(y) \ - (__extension__ ({__typeof__(y) __y = (y); \ - (sizeof (__y) == sizeof (float)) ? (1) : \ - fpclassify(__y) != FP_INFINITE && fpclassify(__y) != FP_NAN;})) +#define isfinite(__y) \ + (__extension__ ({int __cy; \ + (sizeof (__y) == sizeof (float)) ? (1) : \ + (__cy = fpclassify(__y)) != FP_INFINITE && __cy != FP_NAN;})) + #define isinf(__x) ((sizeof (__x) == sizeof (float)) ? (0) : __isinfd(__x)) #define isnan(__x) ((sizeof (__x) == sizeof (float)) ? (0) : __isnand(__x))