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.18-344-gbbea82f


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  bbea82f7fe8af40fd08e8956e1aaf4d877168652 (commit)
      from  977f4b31b7ca4a4e498c397f3fd70510694bbd86 (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=bbea82f7fe8af40fd08e8956e1aaf4d877168652

commit bbea82f7fe8af40fd08e8956e1aaf4d877168652
Author: OndÅ?ej Bílka <neleai@seznam.cz>
Date:   Wed Oct 30 16:07:15 2013 +0100

    Remove code from div that is by C99 obsolete. Fixes bug 15799

diff --git a/ChangeLog b/ChangeLog
index b319735..07ea69d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2013-10-30   OndÅ?ej Bílka  <neleai@seznam.cz>
+
+	[BZ 15799]
+	* stdlib/div.c (div): Remove obsolete code.
+	* stdlib/ldiv.c (ldiv): Likewise.
+	* stdlib/lldiv.c (lldiv): Likewise.
+
 2013-10-30  Siddhesh Poyarekar  <siddhesh@redhat.com>
 
 	[BZ #16071]
diff --git a/NEWS b/NEWS
index 87d183a..2c5873d 100644
--- a/NEWS
+++ b/NEWS
@@ -13,10 +13,10 @@ Version 2.19
   14547, 14699, 14876, 14910, 15048, 15218, 15277, 15308, 15362, 15400,
   15427, 15522, 15531, 15532, 15608, 15609, 15610, 15632, 15640, 15670,
   15672, 15680, 15681, 15723, 15734, 15735, 15736, 15748, 15749, 15754,
-  15760, 15764, 15797, 15825, 15844, 15847, 15849, 15855, 15856, 15857,
-  15859, 15867, 15886, 15887, 15890, 15892, 15893, 15895, 15897, 15905,
-  15909, 15919, 15921, 15923, 15939, 15948, 15963, 15966, 15988, 16032,
-  16034, 16036, 16041, 16071, 16072, 16074, 16078.
+  15760, 15764, 15797, 15799, 15825, 15844, 15847, 15849, 15855, 15856,
+  15857, 15859, 15867, 15886, 15887, 15890, 15892, 15893, 15895, 15897,
+  15905, 15909, 15919, 15921, 15923, 15939, 15948, 15963, 15966, 15988,
+  16032, 16034, 16036, 16041, 16071, 16072, 16074, 16078.
 
 * CVE-2012-4412 The strcoll implementation caches indices and rules for
   large collation sequences to optimize multiple passes.  This cache
diff --git a/stdlib/div.c b/stdlib/div.c
index 44a30a7..0f5569a 100644
--- a/stdlib/div.c
+++ b/stdlib/div.c
@@ -59,27 +59,5 @@ div (numer, denom)
   result.quot = numer / denom;
   result.rem = numer % denom;
 
-  /* The ANSI standard says that |QUOT| <= |NUMER / DENOM|, where
-     NUMER / DENOM is to be computed in infinite precision.  In
-     other words, we should always truncate the quotient towards
-     zero, never -infinity.  Machine division and remainer may
-     work either way when one or both of NUMER or DENOM is
-     negative.  If only one is negative and QUOT has been
-     truncated towards -infinity, REM will have the same sign as
-     DENOM and the opposite sign of NUMER; if both are negative
-     and QUOT has been truncated towards -infinity, REM will be
-     positive (will have the opposite sign of NUMER).  These are
-     considered `wrong'.  If both are NUM and DENOM are positive,
-     RESULT will always be positive.  This all boils down to: if
-     NUMER >= 0, but REM < 0, we got the wrong answer.  In that
-     case, to get the right answer, add 1 to QUOT and subtract
-     DENOM from REM.  */
-
-  if (numer >= 0 && result.rem < 0)
-    {
-      ++result.quot;
-      result.rem -= denom;
-    }
-
   return result;
 }
diff --git a/stdlib/ldiv.c b/stdlib/ldiv.c
index 76d474f..a03057f 100644
--- a/stdlib/ldiv.c
+++ b/stdlib/ldiv.c
@@ -27,27 +27,5 @@ ldiv (long int numer, long int denom)
   result.quot = numer / denom;
   result.rem = numer % denom;
 
-  /* The ANSI standard says that |QUOT| <= |NUMER / DENOM|, where
-     NUMER / DENOM is to be computed in infinite precision.  In
-     other words, we should always truncate the quotient towards
-     zero, never -infinity.  Machine division and remainer may
-     work either way when one or both of NUMER or DENOM is
-     negative.  If only one is negative and QUOT has been
-     truncated towards -infinity, REM will have the same sign as
-     DENOM and the opposite sign of NUMER; if both are negative
-     and QUOT has been truncated towards -infinity, REM will be
-     positive (will have the opposite sign of NUMER).  These are
-     considered `wrong'.  If both are NUM and DENOM are positive,
-     RESULT will always be positive.  This all boils down to: if
-     NUMER >= 0, but REM < 0, we got the wrong answer.  In that
-     case, to get the right answer, add 1 to QUOT and subtract
-     DENOM from REM.  */
-
-  if (numer >= 0 && result.rem < 0)
-    {
-      ++result.quot;
-      result.rem -= denom;
-    }
-
   return result;
 }
diff --git a/stdlib/lldiv.c b/stdlib/lldiv.c
index d1202bf..0da1a6a 100644
--- a/stdlib/lldiv.c
+++ b/stdlib/lldiv.c
@@ -30,27 +30,5 @@ lldiv (numer, denom)
   result.quot = numer / denom;
   result.rem = numer % denom;
 
-  /* The ANSI standard says that |QUOT| <= |NUMER / DENOM|, where
-     NUMER / DENOM is to be computed in infinite precision.  In
-     other words, we should always truncate the quotient towards
-     zero, never -infinity.  Machine division and remainer may
-     work either way when one or both of NUMER or DENOM is
-     negative.  If only one is negative and QUOT has been
-     truncated towards -infinity, REM will have the same sign as
-     DENOM and the opposite sign of NUMER; if both are negative
-     and QUOT has been truncated towards -infinity, REM will be
-     positive (will have the opposite sign of NUMER).  These are
-     considered `wrong'.  If both are NUM and DENOM are positive,
-     RESULT will always be positive.  This all boils down to: if
-     NUMER >= 0, but REM < 0, we got the wrong answer.  In that
-     case, to get the right answer, add 1 to QUOT and subtract
-     DENOM from REM.  */
-
-  if (numer >= 0 && result.rem < 0)
-    {
-      ++result.quot;
-      result.rem -= denom;
-    }
-
   return result;
 }

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

Summary of changes:
 ChangeLog      |    7 +++++++
 NEWS           |    8 ++++----
 stdlib/div.c   |   22 ----------------------
 stdlib/ldiv.c  |   22 ----------------------
 stdlib/lldiv.c |   22 ----------------------
 5 files changed, 11 insertions(+), 70 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]