This is the mail archive of the
glibc-cvs@sourceware.org
mailing list for the glibc project.
GNU C Library master sources branch master updated. glibc-2.28.9000-546-g27c5e75
- From: jsm28 at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 4 Jan 2019 16:18:53 -0000
- Subject: GNU C Library master sources branch master updated. glibc-2.28.9000-546-g27c5e75
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".
The branch, master has been updated
via 27c5e756a2a8495d77480a103081a86c1ca9a1e8 (commit)
from 8b18d418bd0ef1d2b1093e5b956bf176f41f4828 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=27c5e756a2a8495d77480a103081a86c1ca9a1e8
commit 27c5e756a2a8495d77480a103081a86c1ca9a1e8
Author: Martin Jansa <martin.jansa@gmail.com>
Date: Fri Jan 4 16:17:48 2019 +0000
sysdeps/ieee754: prevent maybe-uninitialized errors with -O [BZ #19444]
With -O included in CFLAGS it fails to build with:
../sysdeps/ieee754/ldbl-96/e_jnl.c: In function '__ieee754_jnl':
../sysdeps/ieee754/ldbl-96/e_jnl.c:146:20: error: 'temp' may be used uninitialized in this function [-Werror=maybe-uninitialized]
b = invsqrtpi * temp / sqrtl (x);
~~~~~~~~~~^~~~~~
../sysdeps/ieee754/ldbl-96/e_jnl.c: In function '__ieee754_ynl':
../sysdeps/ieee754/ldbl-96/e_jnl.c:375:16: error: 'temp' may be used uninitialized in this function [-Werror=maybe-uninitialized]
b = invsqrtpi * temp / sqrtl (x);
~~~~~~~~~~^~~~~~
../sysdeps/ieee754/dbl-64/e_jn.c: In function '__ieee754_jn':
../sysdeps/ieee754/dbl-64/e_jn.c:113:20: error: 'temp' may be used uninitialized in this function [-Werror=maybe-uninitialized]
b = invsqrtpi * temp / sqrt (x);
~~~~~~~~~~^~~~~~
../sysdeps/ieee754/dbl-64/e_jn.c: In function '__ieee754_yn':
../sysdeps/ieee754/dbl-64/e_jn.c:320:16: error: 'temp' may be used uninitialized in this function [-Werror=maybe-uninitialized]
b = invsqrtpi * temp / sqrt (x);
~~~~~~~~~~^~~~~~
Build tested with Yocto for ARM, AARCH64, X86, X86_64, PPC, MIPS, MIPS64
with -O, -O1, -Os.
For AARCH64 it needs one more fix in locale for -Os:
https://sourceware.org/ml/libc-alpha/2018-09/msg00539.html
[BZ #19444]
* sysdeps/ieee754/dbl-64/e_jn.c (__ieee754_jn): Use
__builtin_unreachable for default case in switch.
(__ieee754_yn): Likewise.
* sysdeps/ieee754/ldbl-96/e_jnl.c (__ieee754_jnl): Likewise.
(__ieee754_ynl): Likewise.
* sysdeps/ieee754/ldbl-128/e_jnl.c (__ieee754_jnl): Likewise.
(__ieee754_ynl): Likewise.
* sysdeps/ieee754/ldbl-128ibm/e_jnl.c (__ieee754_jnl): Likewise.
(__ieee754_ynl): Likewise.
diff --git a/ChangeLog b/ChangeLog
index 811160d..a71c88f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+2019-10-04 Martin Jansa <Martin.Jansa@gmail.com>
+
+ [BZ #19444]
+ * sysdeps/ieee754/dbl-64/e_jn.c (__ieee754_jn): Use
+ __builtin_unreachable for default case in switch.
+ (__ieee754_yn): Likewise.
+ * sysdeps/ieee754/ldbl-96/e_jnl.c (__ieee754_jnl): Likewise.
+ (__ieee754_ynl): Likewise.
+ * sysdeps/ieee754/ldbl-128/e_jnl.c (__ieee754_jnl): Likewise.
+ (__ieee754_ynl): Likewise.
+ * sysdeps/ieee754/ldbl-128ibm/e_jnl.c (__ieee754_jnl): Likewise.
+ (__ieee754_ynl): Likewise.
+
2019-01-04 Szabolcs Nagy <szabolcs.nagy@arm.com>
* manual/maint.texi: Use @{ and @}.
diff --git a/sysdeps/ieee754/dbl-64/e_jn.c b/sysdeps/ieee754/dbl-64/e_jn.c
index aff06ea..90a7e77 100644
--- a/sysdeps/ieee754/dbl-64/e_jn.c
+++ b/sysdeps/ieee754/dbl-64/e_jn.c
@@ -109,6 +109,7 @@ __ieee754_jn (int n, double x)
case 1: temp = -c + s; break;
case 2: temp = -c - s; break;
case 3: temp = c - s; break;
+ default: __builtin_unreachable ();
}
b = invsqrtpi * temp / sqrt (x);
}
@@ -316,6 +317,7 @@ __ieee754_yn (int n, double x)
case 1: temp = -s - c; break;
case 2: temp = -s + c; break;
case 3: temp = s + c; break;
+ default: __builtin_unreachable ();
}
b = invsqrtpi * temp / sqrt (x);
}
diff --git a/sysdeps/ieee754/ldbl-128/e_jnl.c b/sysdeps/ieee754/ldbl-128/e_jnl.c
index 7610d18..3c90072 100644
--- a/sysdeps/ieee754/ldbl-128/e_jnl.c
+++ b/sysdeps/ieee754/ldbl-128/e_jnl.c
@@ -150,6 +150,8 @@ __ieee754_jnl (int n, _Float128 x)
case 3:
temp = c - s;
break;
+ default:
+ __builtin_unreachable ();
}
b = invsqrtpi * temp / sqrtl (x);
}
@@ -386,6 +388,8 @@ __ieee754_ynl (int n, _Float128 x)
case 3:
temp = s + c;
break;
+ default:
+ __builtin_unreachable ();
}
b = invsqrtpi * temp / sqrtl (x);
}
diff --git a/sysdeps/ieee754/ldbl-128ibm/e_jnl.c b/sysdeps/ieee754/ldbl-128ibm/e_jnl.c
index 50b4558..478824c 100644
--- a/sysdeps/ieee754/ldbl-128ibm/e_jnl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/e_jnl.c
@@ -150,6 +150,8 @@ __ieee754_jnl (int n, long double x)
case 3:
temp = c - s;
break;
+ default:
+ __builtin_unreachable ();
}
b = invsqrtpi * temp / sqrtl (x);
}
@@ -386,6 +388,8 @@ __ieee754_ynl (int n, long double x)
case 3:
temp = s + c;
break;
+ default:
+ __builtin_unreachable ();
}
b = invsqrtpi * temp / sqrtl (x);
}
diff --git a/sysdeps/ieee754/ldbl-96/e_jnl.c b/sysdeps/ieee754/ldbl-96/e_jnl.c
index 8551908..6c1c4b4 100644
--- a/sysdeps/ieee754/ldbl-96/e_jnl.c
+++ b/sysdeps/ieee754/ldbl-96/e_jnl.c
@@ -143,6 +143,8 @@ __ieee754_jnl (int n, long double x)
case 3:
temp = c - s;
break;
+ default:
+ __builtin_unreachable ();
}
b = invsqrtpi * temp / sqrtl (x);
}
@@ -372,6 +374,8 @@ __ieee754_ynl (int n, long double x)
case 3:
temp = s + c;
break;
+ default:
+ __builtin_unreachable ();
}
b = invsqrtpi * temp / sqrtl (x);
}
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 13 +++++++++++++
sysdeps/ieee754/dbl-64/e_jn.c | 2 ++
sysdeps/ieee754/ldbl-128/e_jnl.c | 4 ++++
sysdeps/ieee754/ldbl-128ibm/e_jnl.c | 4 ++++
sysdeps/ieee754/ldbl-96/e_jnl.c | 4 ++++
5 files changed, 27 insertions(+), 0 deletions(-)
hooks/post-receive
--
GNU C Library master sources