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.22-273-g89faa03


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  89faa0340ad399ead8104f8fb6b7fed81f7d939c (commit)
      from  3cc652e951c71785032019fec82e3b8543d85305 (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=89faa0340ad399ead8104f8fb6b7fed81f7d939c

commit 89faa0340ad399ead8104f8fb6b7fed81f7d939c
Author: Wilco Dijkstra <wdijkstr@arm.com>
Date:   Fri Sep 18 21:19:48 2015 +0100

    Cleanup a few cases where isinf is used to get the signbit to improve the readability and maintainability and allow inlining.
    
    2015-09-18  Wilco Dijkstra  <wdijkstr@arm.com>
    
            * math/w_tgamma.c (__ieee754_gamma_r): Use explicit sign check.
            * math/w_tgammaf.c (__ieee754_gammaf_r): Likewise.
            * math/w_tgammal.c (__ieee754_gammal_r): Likewise.
            * stdio-common/printf_fp.c (___printf_fp):
            Use signbit to get the sign. Use isinf macro to allow inlining.
            * stdio-common/printf_fphex.c (__printf_fphex): Likewise.
            * stdio-common/printf_size.c (__printf_size): Likewise.

diff --git a/ChangeLog b/ChangeLog
index 7d2bf7f..67c837d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2015-09-18  Wilco Dijkstra  <wdijkstr@arm.com>
+
+	* math/w_tgamma.c (__ieee754_gamma_r): Use explicit sign check.
+	* math/w_tgammaf.c (__ieee754_gammaf_r): Likewise.
+	* math/w_tgammal.c (__ieee754_gammal_r): Likewise.
+	* stdio-common/printf_fp.c (___printf_fp):
+	Use signbit to get the sign. Use isinf macro to allow inlining.
+	* stdio-common/printf_fphex.c (__printf_fphex): Likewise.
+	* stdio-common/printf_size.c (__printf_size): Likewise.
+
 2015-09-18  Mike Frysinger  <vapier@gentoo.org>
 
 	* timezone/Makefile ($(testdata)/XT%): Call $(make-target-directory).
diff --git a/math/w_tgamma.c b/math/w_tgamma.c
index 1ca7765..99b6029 100644
--- a/math/w_tgamma.c
+++ b/math/w_tgamma.c
@@ -26,7 +26,7 @@ __tgamma(double x)
 	double y = __ieee754_gamma_r(x,&local_signgam);
 
 	if(__glibc_unlikely (!isfinite (y) || y == 0)
-	   && (isfinite (x) || isinf (x) < 0)
+	   && (isfinite (x) || (isinf (x) && x < 0.0))
 	   && _LIB_VERSION != _IEEE_) {
 	  if (x == 0.0)
 	    return __kernel_standard(x,x,50); /* tgamma pole */
diff --git a/math/w_tgammaf.c b/math/w_tgammaf.c
index 9ed7660..dfce894 100644
--- a/math/w_tgammaf.c
+++ b/math/w_tgammaf.c
@@ -24,7 +24,7 @@ __tgammaf(float x)
 	float y = __ieee754_gammaf_r(x,&local_signgam);
 
 	if(__glibc_unlikely (!isfinite (y) || y == 0)
-	   && (isfinite (x) || isinf (x) < 0)
+	   && (isfinite (x) || (isinf (x) && x < 0.0))
 	   && _LIB_VERSION != _IEEE_) {
 	  if (x == (float)0.0)
 	    /* tgammaf pole */
diff --git a/math/w_tgammal.c b/math/w_tgammal.c
index b3a9e4a..50de8cf 100644
--- a/math/w_tgammal.c
+++ b/math/w_tgammal.c
@@ -29,7 +29,7 @@ __tgammal(long double x)
 	long double y = __ieee754_gammal_r(x,&local_signgam);
 
 	if(__glibc_unlikely (!isfinite (y) || y == 0)
-	   && (isfinite (x) || isinf (x) < 0)
+	   && (isfinite (x) || (isinf (x) && x < 0.0))
 	   && _LIB_VERSION != _IEEE_) {
 	  if(x==0.0)
 	    return __kernel_standard_l(x,x,250); /* tgamma pole */
diff --git a/stdio-common/printf_fp.c b/stdio-common/printf_fp.c
index 3023b20..11f3145 100644
--- a/stdio-common/printf_fp.c
+++ b/stdio-common/printf_fp.c
@@ -332,7 +332,6 @@ ___printf_fp (FILE *fp,
       fpnum.ldbl = *(const long double *) args[0];
 
       /* Check for special values: not a number or infinity.  */
-      int res;
       if (isnan (fpnum.ldbl))
 	{
 	  is_neg = signbit (fpnum.ldbl);
@@ -347,9 +346,9 @@ ___printf_fp (FILE *fp,
 		wspecial = L"nan";
 	      }
 	}
-      else if ((res = __isinfl (fpnum.ldbl)))
+      else if (isinf (fpnum.ldbl))
 	{
-	  is_neg = res < 0;
+	  is_neg = signbit (fpnum.ldbl);
 	  if (isupper (info->spec))
 	    {
 	      special = "INF";
@@ -377,11 +376,9 @@ ___printf_fp (FILE *fp,
       fpnum.dbl = *(const double *) args[0];
 
       /* Check for special values: not a number or infinity.  */
-      int res;
       if (isnan (fpnum.dbl))
 	{
-	  union ieee754_double u = { .d = fpnum.dbl };
-	  is_neg = u.ieee.negative != 0;
+	  is_neg = signbit (fpnum.dbl);
 	  if (isupper (info->spec))
 	    {
 	      special = "NAN";
@@ -393,9 +390,9 @@ ___printf_fp (FILE *fp,
 	      wspecial = L"nan";
 	    }
 	}
-      else if ((res = __isinf (fpnum.dbl)))
+      else if (isinf (fpnum.dbl))
 	{
-	  is_neg = res < 0;
+	  is_neg = signbit (fpnum.dbl);
 	  if (isupper (info->spec))
 	    {
 	      special = "INF";
diff --git a/stdio-common/printf_fphex.c b/stdio-common/printf_fphex.c
index 6c3b5e9..0627bea 100644
--- a/stdio-common/printf_fphex.c
+++ b/stdio-common/printf_fphex.c
@@ -180,7 +180,7 @@ __printf_fphex (FILE *fp,
 	}
       else
 	{
-	  if (__isinfl (fpnum.ldbl))
+	  if (isinf (fpnum.ldbl))
 	    {
 	      if (isupper (info->spec))
 		{
@@ -204,7 +204,6 @@ __printf_fphex (FILE *fp,
       /* Check for special values: not a number or infinity.  */
       if (isnan (fpnum.dbl.d))
 	{
-	  negative = fpnum.dbl.ieee.negative != 0;
 	  if (isupper (info->spec))
 	    {
 	      special = "NAN";
@@ -218,8 +217,7 @@ __printf_fphex (FILE *fp,
 	}
       else
 	{
-	  int res = __isinf (fpnum.dbl.d);
-	  if (res)
+	  if (isinf (fpnum.dbl.d))
 	    {
 	      if (isupper (info->spec))
 		{
@@ -231,11 +229,9 @@ __printf_fphex (FILE *fp,
 		  special = "inf";
 		  wspecial = L"inf";
 		}
-	      negative = res < 0;
 	    }
-	  else
-	    negative = signbit (fpnum.dbl.d);
 	}
+      negative = signbit (fpnum.dbl.d);
     }
 
   if (special)
diff --git a/stdio-common/printf_size.c b/stdio-common/printf_size.c
index 7dcd58e..216f170 100644
--- a/stdio-common/printf_size.c
+++ b/stdio-common/printf_size.c
@@ -108,7 +108,7 @@ __printf_size (FILE *fp, const struct printf_info *info,
   fpnum;
   const void *ptr = &fpnum;
 
-  int fpnum_sign = 0;
+  int is_neg = 0;
 
   /* "NaN" or "Inf" for the special cases.  */
   const char *special = NULL;
@@ -117,7 +117,6 @@ __printf_size (FILE *fp, const struct printf_info *info,
   struct printf_info fp_info;
   int done = 0;
   int wide = info->wide;
-  int res;
 
   /* Fetch the argument value.	*/
 #ifndef __NO_LONG_DOUBLE_MATH
@@ -130,11 +129,11 @@ __printf_size (FILE *fp, const struct printf_info *info,
 	{
 	  special = "nan";
 	  wspecial = L"nan";
-	  // fpnum_sign = 0;	Already zero
+	  // is_neg = 0;	Already zero
 	}
-      else if ((res = __isinfl (fpnum.ldbl)))
+      else if (isinf (fpnum.ldbl))
 	{
-	  fpnum_sign = res;
+	  is_neg = signbit (fpnum.ldbl);
 	  special = "inf";
 	  wspecial = L"inf";
 	}
@@ -155,11 +154,11 @@ __printf_size (FILE *fp, const struct printf_info *info,
 	{
 	  special = "nan";
 	  wspecial = L"nan";
-	  // fpnum_sign = 0;	Already zero
+	  // is_neg = 0;	Already zero
 	}
-      else if ((res = __isinf (fpnum.dbl.d)))
+      else if (isinf (fpnum.dbl.d))
 	{
-	  fpnum_sign = res;
+	  is_neg = signbit (fpnum.dbl.d);
 	  special = "inf";
 	  wspecial = L"inf";
 	}
@@ -175,14 +174,14 @@ __printf_size (FILE *fp, const struct printf_info *info,
     {
       int width = info->prec > info->width ? info->prec : info->width;
 
-      if (fpnum_sign < 0 || info->showsign || info->space)
+      if (is_neg || info->showsign || info->space)
 	--width;
       width -= 3;
 
       if (!info->left && width > 0)
 	PADN (' ', width);
 
-      if (fpnum_sign < 0)
+      if (is_neg)
 	outchar ('-');
       else if (info->showsign)
 	outchar ('+');

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

Summary of changes:
 ChangeLog                   |   10 ++++++++++
 math/w_tgamma.c             |    2 +-
 math/w_tgammaf.c            |    2 +-
 math/w_tgammal.c            |    2 +-
 stdio-common/printf_fp.c    |   13 +++++--------
 stdio-common/printf_fphex.c |   10 +++-------
 stdio-common/printf_size.c  |   19 +++++++++----------
 7 files changed, 30 insertions(+), 28 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]