summary refs log tree commit diff
path: root/sysdeps
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2015-05-22 17:48:45 +0000
committerJoseph Myers <joseph@codesourcery.com>2015-05-22 17:48:45 +0000
commit31a8780d0b41934c6ab5160f834f56a2d5d97f4a (patch)
treef8caf31e82643454433f5dcdd8e14fd90d2fbbbd /sysdeps
parentfded7ed684b17e42a5cc5434e799166ca2df1643 (diff)
downloadglibc-31a8780d0b41934c6ab5160f834f56a2d5d97f4a.tar.gz
glibc-31a8780d0b41934c6ab5160f834f56a2d5d97f4a.tar.xz
glibc-31a8780d0b41934c6ab5160f834f56a2d5d97f4a.zip
Fix ldbl-128 / ldbl-128ibm erfcl for -Wuninitialized
The ldbl-128 and ldbl-128ibm implementations of erfcl produce
uninitialized variable warnings with -Wuninitialized because of switch
statements where in fact one of the cases will always be executed, but
the compiler does not see that these cases cover all possibilities
(and because the reasoning that it does involves inequalities on the
representation of a floating point value leading to a set of possible
values for 8.0 times that value, converted to int, it's highly
nontrivial for the compiler to see that).  This patch fixes those
warnings by converting the last case in those switch statements to a
"default" case.

Tested for powerpc and mips64.

	* sysdeps/ieee754/ldbl-128/s_erfl.c (__erfcl): Make case 9 in
	switch statement into default case.
	* sysdeps/ieee754/ldbl-128ibm/s_erfl.c (__erfcl): Likewise.
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/ieee754/ldbl-128/s_erfl.c2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_erfl.c2
2 files changed, 2 insertions, 2 deletions
diff --git a/sysdeps/ieee754/ldbl-128/s_erfl.c b/sysdeps/ieee754/ldbl-128/s_erfl.c
index 9bfc9c580b..fa4609f136 100644
--- a/sysdeps/ieee754/ldbl-128/s_erfl.c
+++ b/sysdeps/ieee754/ldbl-128/s_erfl.c
@@ -874,7 +874,7 @@ __erfcl (long double x)
 	  y = C19b + z * neval (z, RNr19, NRNr19) / deval (z, RDr19, NRDr19);
 	  y += C19a;
 	  break;
-	case 9:
+	default: /* i == 9.  */
 	  z = x - 1.125L;
 	  y = C20b + z * neval (z, RNr20, NRNr20) / deval (z, RDr20, NRDr20);
 	  y += C20a;
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_erfl.c b/sysdeps/ieee754/ldbl-128ibm/s_erfl.c
index f55e8b7879..f6fcf48cfa 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_erfl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_erfl.c
@@ -894,7 +894,7 @@ __erfcl (long double x)
 	  y = C19b + z * neval (z, RNr19, NRNr19) / deval (z, RDr19, NRDr19);
 	  y += C19a;
 	  break;
-	case 9:
+	default: /* i == 9.  */
 	  z = x - 1.125L;
 	  y = C20b + z * neval (z, RNr20, NRNr20) / deval (z, RDr20, NRDr20);
 	  y += C20a;