summaryrefslogtreecommitdiffstats
path: root/lib/msun
diff options
context:
space:
mode:
authorkargl <kargl@FreeBSD.org>2011-06-19 17:07:58 +0000
committerkargl <kargl@FreeBSD.org>2011-06-19 17:07:58 +0000
commit6842f5f27fa5682989254819297be4d8c24cf281 (patch)
tree3c599b5fe067fb12bb75673975770d8c4b8daf94 /lib/msun
parent7747419ea7d14237cc32a8888c87e2c8117294c8 (diff)
downloadFreeBSD-src-6842f5f27fa5682989254819297be4d8c24cf281.zip
FreeBSD-src-6842f5f27fa5682989254819297be4d8c24cf281.tar.gz
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)
Diffstat (limited to 'lib/msun')
-rw-r--r--lib/msun/src/e_rem_pio2.c3
1 files changed, 1 insertions, 2 deletions
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;
OpenPOWER on IntegriCloud