From 6842f5f27fa5682989254819297be4d8c24cf281 Mon Sep 17 00:00:00 2001 From: kargl Date: Sun, 19 Jun 2011 17:07:58 +0000 Subject: In the libm access macros for the double type, z can sometimes be used uninitialized. This can lead to spurious exceptions and bit clobbering. Submitted by: bde Approved by: das (mentor) --- lib/msun/src/e_rem_pio2.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'lib/msun') diff --git a/lib/msun/src/e_rem_pio2.c b/lib/msun/src/e_rem_pio2.c index a58a81b..fde9660 100644 --- a/lib/msun/src/e_rem_pio2.c +++ b/lib/msun/src/e_rem_pio2.c @@ -171,9 +171,8 @@ medium: } /* set z = scalbn(|x|,ilogb(x)-23) */ GET_LOW_WORD(low,x); - SET_LOW_WORD(z,low); e0 = (ix>>20)-1046; /* e0 = ilogb(z)-23; */ - SET_HIGH_WORD(z, ix - ((int32_t)(e0<<20))); + INSERT_WORDS(z, ix - ((int32_t)(e0<<20)), low); for(i=0;i<2;i++) { tx[i] = (double)((int32_t)(z)); z = (z-tx[i])*two24; -- cgit v1.1