This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GNU C Library master sources branch master updated. glibc-2.21-393-gfded7ed


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  fded7ed684b17e42a5cc5434e799166ca2df1643 (commit)
      from  992328e5e0852c2f3b7126a5861235b07ad27cac (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=fded7ed684b17e42a5cc5434e799166ca2df1643

commit fded7ed684b17e42a5cc5434e799166ca2df1643
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Fri May 22 17:36:52 2015 +0000

    Fix ldbl-128 / ldbl-128ibm asinl for -Wuninitialized.
    
    The ldbl-128 and ldbl-128ibm implementations of asinl produce
    uninitialized variable warnings with -Wuninitialized because the code
    for small arguments in fact always returns but the compiler cannot see
    this and instead sees that a variable would be uninitialized if the
    "if (huge + x > one)" conditional used to force the "inexact"
    exception were false.
    
    All the code in libm trying to force "inexact" for functions that are
    not exactly defined is suspect and should be removed at some point
    given that we now have a clear definition of the accuracy goals for
    libm functions which, following C99/C11, does not require anything
    about "inexact" for most functions (likewise, the multi-precision code
    that tries to give correctly-rounded results, very slowly, for
    functions for which the goals clearly do not include correct rounding,
    if the faster paths are accurate enough).  However, for now this patch
    simply changes the code to use math_force_eval, rather than "if", to
    ensure the evaluation of the inexact computation.
    
    Tested for powerpc and mips64.
    
    	* sysdeps/ieee754/ldbl-128/e_asinl.c (__ieee754_asinl): Don't use
    	a conditional in forcing "inexact".
    	* sysdeps/ieee754/ldbl-128ibm/e_asinl.c (__ieee754_asinl):
    	Likewise.

diff --git a/ChangeLog b/ChangeLog
index 059f9d2..21c4fa6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2015-05-22  Joseph Myers  <joseph@codesourcery.com>
+
+	* sysdeps/ieee754/ldbl-128/e_asinl.c (__ieee754_asinl): Don't use
+	a conditional in forcing "inexact".
+	* sysdeps/ieee754/ldbl-128ibm/e_asinl.c (__ieee754_asinl):
+	Likewise.
+
 2015-05-22  Roland McGrath  <roland@hack.frob.com>
 
 	* nptl/nptl-init.c (__pthread_initialize_minimal_internal):
diff --git a/sysdeps/ieee754/ldbl-128/e_asinl.c b/sysdeps/ieee754/ldbl-128/e_asinl.c
index 353603d..691ac26 100644
--- a/sysdeps/ieee754/ldbl-128/e_asinl.c
+++ b/sysdeps/ieee754/ldbl-128/e_asinl.c
@@ -158,8 +158,9 @@ __ieee754_asinl (long double x)
 	      long double force_underflow = x * x;
 	      math_force_eval (force_underflow);
 	    }
-	  if (huge + x > one)
-	    return x;		/* return x with inexact if x!=0 */
+	  long double force_inexact = huge + x;
+	  math_force_eval (force_inexact);
+	  return x;		/* return x with inexact if x!=0 */
 	}
       else
 	{
diff --git a/sysdeps/ieee754/ldbl-128ibm/e_asinl.c b/sysdeps/ieee754/ldbl-128ibm/e_asinl.c
index 00386db..5bc847a 100644
--- a/sysdeps/ieee754/ldbl-128ibm/e_asinl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/e_asinl.c
@@ -152,8 +152,9 @@ __ieee754_asinl (long double x)
 	      long double force_underflow = x * x;
 	      math_force_eval (force_underflow);
 	    }
-	  if (huge + x > one)
-	    return x;		/* return x with inexact if x!=0 */
+	  long double force_inexact =  huge + x;
+	  math_force_eval (force_inexact);
+	  return x;		/* return x with inexact if x!=0 */
 	}
       else
 	{

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                             |    7 +++++++
 sysdeps/ieee754/ldbl-128/e_asinl.c    |    5 +++--
 sysdeps/ieee754/ldbl-128ibm/e_asinl.c |    5 +++--
 3 files changed, 13 insertions(+), 4 deletions(-)


hooks/post-receive
-- 
GNU C Library master sources


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]