about summary refs log tree commit diff
path: root/ChangeLog
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2015-05-21 23:44:33 +0000
committerJoseph Myers <joseph@codesourcery.com>2015-05-21 23:44:33 +0000
commit9124ccf76abc5a2ffe4603e6424b1dc2b5a5db44 (patch)
treedf43bd150365d7da6bee80df86d59f7bb57c7da3 /ChangeLog
parent89f3b6e18c6e7833438789746fcfc2e7189f7cac (diff)
downloadglibc-9124ccf76abc5a2ffe4603e6424b1dc2b5a5db44.tar.gz
glibc-9124ccf76abc5a2ffe4603e6424b1dc2b5a5db44.tar.xz
glibc-9124ccf76abc5a2ffe4603e6424b1dc2b5a5db44.zip
Fix lgamma implementations for -Wuninitialized.
If you remove the "override CFLAGS += -Wno-uninitialized" in
math/Makefile, you get errors from lgamma implementations of the form:

../sysdeps/ieee754/dbl-64/e_lgamma_r.c: In function '__ieee754_lgamma_r':
../sysdeps/ieee754/dbl-64/e_lgamma_r.c:297:13: error: 'nadj' may be used uninitialized in this function [-Werror=maybe-uninitialized]
  if(hx<0) r = nadj - r;

This is one of the standard kinds of false positive uninitialized
warnings: nadj is set under a certain condition, and then later used
under the same condition.  This patch uses DIAG_* macros to suppress
the warning on the use of nadj.  The ldbl-128 / ldbl-128ibm
implementation has a substantially different structure that avoids
this issue.

Tested for x86_64.  (In fact this patch eliminates the need for that
-Wno-uninitialized on x86_64, but I want to test on more architectures
before removing it.)

	* sysdeps/ieee754/dbl-64/e_lgamma_r.c: Include <libc-internal.h>.
	(__ieee754_lgamma_r): Ignore uninitialized warnings around use of
	NADJ.
	* sysdeps/ieee754/flt-32/e_lgammaf_r.c: Include <libc-internal.h>.
	(__ieee754_lgammaf_r): Ignore uninitialized warnings around use of
	NADJ.
	* sysdeps/ieee754/ldbl-96/e_lgammal_r.c: Include <libc-internal.h>.
	(__ieee754_lgammal_r): Ignore uninitialized warnings around use of
	NADJ.
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog10
1 files changed, 10 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index bca6ba7a3f..ba7a400e53 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,15 @@
 2015-05-21  Joseph Myers  <joseph@codesourcery.com>
 
+	* sysdeps/ieee754/dbl-64/e_lgamma_r.c: Include <libc-internal.h>.
+	(__ieee754_lgamma_r): Ignore uninitialized warnings around use of
+	NADJ.
+	* sysdeps/ieee754/flt-32/e_lgammaf_r.c: Include <libc-internal.h>.
+	(__ieee754_lgammaf_r): Ignore uninitialized warnings around use of
+	NADJ.
+	* sysdeps/ieee754/ldbl-96/e_lgammal_r.c: Include <libc-internal.h>.
+	(__ieee754_lgammal_r): Ignore uninitialized warnings around use of
+	NADJ.
+
 	* sysdeps/ieee754/dbl-64/mpa.c (norm): Remove if condition on
 	(p == 4) case.