This is the mail archive of the newlib@sourceware.org mailing list for the newlib project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH 2/2] Remove broken ieeefp.h macros


Any attempt to use isnanf, isinff, or finitef from <ieeefp.h> on
platforms other than SPU result in a "lvalue required as unary '&'
operand" error.

	newlib/libc/
	* include/ieeefp.h (__ieeefp_isnanf): Remove broken macro.
	(__ieeefp_isinff, __ieeefp_finitef): Ditto.

Signed-off-by: Yaakov Selkowitz <yselkowi@redhat.com>
---
 newlib/libc/include/ieeefp.h | 17 ++++++-----------
 1 file changed, 6 insertions(+), 11 deletions(-)

diff --git a/newlib/libc/include/ieeefp.h b/newlib/libc/include/ieeefp.h
index 9eb274d..2ffa456 100644
--- a/newlib/libc/include/ieeefp.h
+++ b/newlib/libc/include/ieeefp.h
@@ -270,22 +270,17 @@ int _EXFUN(finitef, (float));
 #define __IEEE_DBL_NAN_EXP 0x7ff
 #define __IEEE_FLT_NAN_EXP 0xff
 
-#ifndef __ieeefp_isnanf
-#define __ieeefp_isnanf(x) (((*(long *)&(x) & 0x7f800000L)==0x7f800000L) && \
-			    ((*(long *)&(x) & 0x007fffffL)!=0000000000L))
-#endif
+#ifdef __ieeefp_isnanf
 #define isnanf(x)	__ieeefp_isnanf(x)
-
-#ifndef __ieeefp_isinff
-#define __ieeefp_isinff(x) (((*(long *)&(x) & 0x7f800000L)==0x7f800000L) && \
-			    ((*(long *)&(x) & 0x007fffffL)==0000000000L))
 #endif
-#define isinff(x)	__ieeefp_isinff(x)
 
-#ifndef __ieeefp_finitef
-#define __ieeefp_finitef(x) (((*(long *)&(x) & 0x7f800000L)!=0x7f800000L))
+#ifdef __ieeefp_isinff
+#define isinff(x)	__ieeefp_isinff(x)
 #endif
+
+#ifdef __ieeefp_finitef
 #define finitef(x)	__ieeefp_finitef(x)
+#endif
 
 #ifdef _DOUBLE_IS_32BITS
 #undef __IEEE_DBL_EXPBIAS
-- 
2.7.0


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]