aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/ieee754/dbl-64/e_log.c
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2015-08-20 17:28:09 +0000
committerJoseph Myers <joseph@codesourcery.com>2015-08-20 17:28:09 +0000
commit9173e3c0b4455a9cc675318554591247543fb640 (patch)
treea0ca9351f3bb4a01c95e8379494e5bd779e29282 /sysdeps/ieee754/dbl-64/e_log.c
parent1ae6c72dc10806d416a611ea8cc15640f972ffa7 (diff)
downloadglibc-9173e3c0b4455a9cc675318554591247543fb640.zip
glibc-9173e3c0b4455a9cc675318554591247543fb640.tar.gz
glibc-9173e3c0b4455a9cc675318554591247543fb640.tar.bz2
Fix uninitialized variable use in ldbl-128ibm nearbyintl.
Removing the use of -Wno-uninitialized for math/ shows errors for ldbl-128ibm: ../sysdeps/ieee754/ldbl-128ibm/s_nearbyintl.c: In function '__nearbyintl': ../sysdeps/ieee754/ldbl-128ibm/s_nearbyintl.c:119:34: error: 'low' may be used uninitialized in this function [-Werror=maybe-uninitialized] u.d[1].d = high - u.d[0].d + low; ^ ../sysdeps/ieee754/ldbl-128ibm/s_nearbyintl.c:119:23: error: 'high' may be used uninitialized in this function [-Werror=maybe-uninitialized] u.d[1].d = high - u.d[0].d + low; ^ These errors are correct: if the high part of the argument is a NaN, and the low part is nonzero but has absolute value less than 2^52, those variables can be used uninitialized. This patch rearranges the code so that the variables are always initialized with the natural values, and then possibly modified later, to avoid this uninitialized use. (Note that there are still other issues with this code and NaNs that are not fixed by this patch.) No bug filed in Bugzilla or testcase added for the uninitialized use since it wasn't user-visible with the compiler I tried (that is, I still got a NaN result). Tested for powerpc. * sysdeps/ieee754/ldbl-128ibm/s_nearbyintl.c: Always initialize variables for high and low parts before possibly modifying them.
Diffstat (limited to 'sysdeps/ieee754/dbl-64/e_log.c')
0 files changed, 0 insertions, 0 deletions