While investigating some soft-float issues I tried compiling fp-bit.c in libgcc with NO_NANS defined. I wound up with an undefined reference to makenan.
Here is my attempt at a patch to fix the problem but I am not sure if returning 0 is the right thing to do for b/0 when NO_NANS is defined. isinf is always going to be false when NO_NANS is defined so it is only a question of what to do for iszero(a) that we need to worry about. b at this point may or may not be zero. OK to checkin or should I return something else? Steve Ellcey sell...@mips.com 2012-11-30 Steve Ellcey <sell...@mips.com> * fp-bit.c (_fpdiv_parts): Do not call makenan if NO_NANS defined. diff --git a/libgcc/fp-bit.c b/libgcc/fp-bit.c index 7509f76..10a6b3a 100644 --- a/libgcc/fp-bit.c +++ b/libgcc/fp-bit.c @@ -979,8 +979,10 @@ _fpdiv_parts (fp_number_type * a, if (isinf (a) || iszero (a)) { +#ifndef NO_NANS if (a->class == b->class) return makenan (); +#endif return a; }