]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Update.
authorUlrich Drepper <drepper@redhat.com>
Sun, 19 Aug 2001 03:52:42 +0000 (03:52 +0000)
committerUlrich Drepper <drepper@redhat.com>
Sun, 19 Aug 2001 03:52:42 +0000 (03:52 +0000)
* sysdeps/generic/strtol.c: Little optimizations.  Add some
__builtin_expect.

ChangeLog
sysdeps/generic/strtol.c

index ff4605adbc9d93c54c4108a38562c6df5b6dddfc..c8d5e9aa94e7d167756c63dc189e5bd023a767d5 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2001-08-18  Ulrich Drepper  <drepper@redhat.com>
 
+       * sysdeps/generic/strtol.c: Little optimizations.  Add some
+       __builtin_expect.
+
        * conform/conformtest.pl: <inttypes.h> test required <stddef.h>.
 
        * wcsmbs/wchar.h (wcwdith): Change parameter type to wchar_t.
index 0f48b632eb24a0f647ff6fa19b9ab5cfae7dbe3e..d2e09c84046143bf0026fd6c60f62eb0b88d0b24 100644 (file)
@@ -263,7 +263,7 @@ INTERNAL (strtol) (nptr, endptr, base, group LOCALE_PARAM)
      in the format described in <locale.h>.  */
   const char *grouping;
 
-  if (group)
+  if (__builtin_expect (group, 0))
     {
       grouping = _NL_CURRENT (LC_NUMERIC, GROUPING);
       if (*grouping <= 0 || *grouping == CHAR_MAX)
@@ -305,22 +305,18 @@ INTERNAL (strtol) (nptr, endptr, base, group LOCALE_PARAM)
   /* Skip white space.  */
   while (ISSPACE (*s))
     ++s;
-  if (*s == L_('\0'))
+  if (__builtin_expect (*s == L_('\0'), 0))
     goto noconv;
 
   /* Check for a sign.  */
+  negative = 0;
   if (*s == L_('-'))
     {
       negative = 1;
       ++s;
     }
   else if (*s == L_('+'))
-    {
-      negative = 0;
-      ++s;
-    }
-  else
-    negative = 0;
+    ++s;
 
   /* Recognize number prefix and if BASE is zero, figure it out ourselves.  */
   if (*s == L_('0'))
@@ -343,7 +339,7 @@ INTERNAL (strtol) (nptr, endptr, base, group LOCALE_PARAM)
   if (base != 10)
     grouping = NULL;
 
-  if (grouping)
+  if (__builtin_expect (grouping != NULL, 0))
     {
 # ifndef USE_WIDE_CHAR
       thousands_len = strlen (thousands);
@@ -506,7 +502,7 @@ INTERNAL (strtol) (nptr, endptr, base, group LOCALE_PARAM)
     overflow = 1;
 #endif
 
-  if (overflow)
+  if (__builtin_expect (overflow, 0))
     {
       __set_errno (ERANGE);
 #if UNSIGNED