From 091b895531aabba1adc36ac6b68dd91ba52a0945 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sun, 19 Aug 2001 03:52:42 +0000 Subject: Update. * sysdeps/generic/strtol.c: Little optimizations. Add some __builtin_expect. --- sysdeps/generic/strtol.c | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) (limited to 'sysdeps/generic') diff --git a/sysdeps/generic/strtol.c b/sysdeps/generic/strtol.c index 0f48b632eb..d2e09c8404 100644 --- a/sysdeps/generic/strtol.c +++ b/sysdeps/generic/strtol.c @@ -263,7 +263,7 @@ INTERNAL (strtol) (nptr, endptr, base, group LOCALE_PARAM) in the format described in . */ 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 -- cgit v1.2.3