about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2017-12-06 15:19:06 +0000
committerJoseph Myers <joseph@codesourcery.com>2017-12-06 15:19:06 +0000
commit1dbe6f64ab982a1a3258948e9347b5bca76790f3 (patch)
tree339a780ad228552146a5dd42a6bc0d0ace5ed909
parent53994f12633b863eb833fc3b1f6971ae8de61ff8 (diff)
downloadglibc-1dbe6f64ab982a1a3258948e9347b5bca76790f3.tar.gz
glibc-1dbe6f64ab982a1a3258948e9347b5bca76790f3.tar.xz
glibc-1dbe6f64ab982a1a3258948e9347b5bca76790f3.zip
Don't make local variables static in ldbl-96 j1l.
The ldbl-96 implementation of j1l has some function-local variables
that are declared static for no apparent reason (this dates back to
the first addition of that file).

Any vaguely recent compiler, probably including any that are supported
for building glibc, optimizes away the "static" here, as the values of
the variables on entry to the function are dead.  So there is not
actually a user-visible bug here at present (but with any compilers
that didn't optimize away the static at all, possibly building with
less or no optimization, so that the function stored intermediate
values to and then loaded them from the variables, there would have
been a thread-safety issue).  But the "static" clearly doesn't belong
there and might potentially make things unsafe were compilation
without optimization to be supported in future, so this patch removes
it.

Tested for x86_64.

	* sysdeps/ieee754/ldbl-96/e_j1l.c (qone): Don't make local
	variables static.
-rw-r--r--ChangeLog3
-rw-r--r--sysdeps/ieee754/ldbl-96/e_j1l.c2
2 files changed, 4 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 7850a15f63..eda9c0ca82 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2017-12-06  Joseph Myers  <joseph@codesourcery.com>
 
+	* sysdeps/ieee754/ldbl-96/e_j1l.c (qone): Don't make local
+	variables static.
+
 	* sysdeps/ieee754/ldbl-128/e_j0l.c (Y0_2N): Make const.
 	(Y0_2D): Likewise.
 	* sysdeps/ieee754/ldbl-128/e_j1l.c (Y0_2N): Likewise.
diff --git a/sysdeps/ieee754/ldbl-96/e_j1l.c b/sysdeps/ieee754/ldbl-96/e_j1l.c
index a8a9902db0..4f07b0b327 100644
--- a/sysdeps/ieee754/ldbl-96/e_j1l.c
+++ b/sysdeps/ieee754/ldbl-96/e_j1l.c
@@ -507,7 +507,7 @@ static long double
 qone (long double x)
 {
   const long double *p, *q;
-  static long double s, r, z;
+  long double s, r, z;
   int32_t ix;
   uint32_t se, i0, i1;