diff options
Diffstat (limited to 'elf/dl-minimal.c')
-rw-r--r-- | elf/dl-minimal.c | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/elf/dl-minimal.c b/elf/dl-minimal.c index 4c15d83f8e..c9a0575fd0 100644 --- a/elf/dl-minimal.c +++ b/elf/dl-minimal.c @@ -131,7 +131,7 @@ longjmp (jmp_buf env, int val) in the whole error list. */ char * weak_function -_strerror_internal (int errnum, char *buf, size_t buflen) +__strerror_r (int errnum, char *buf, size_t buflen) { char *msg; @@ -205,11 +205,10 @@ __assert_perror_fail (int errnum, #endif /* This function is only used in eval.c. */ -long int -weak_function +long int weak_function __strtol_internal (const char *nptr, char **endptr, int base, int group) { - long int result = 0; + unsigned long int result = 0; long int sign = 1; while (*nptr == ' ' || *nptr == '\t') @@ -246,10 +245,14 @@ __strtol_internal (const char *nptr, char **endptr, int base, int group) while (*nptr >= '0' && *nptr <= '9') { - long int digval = *nptr - '0'; + unsigned long int digval = *nptr - '0'; if (result > LONG_MAX / 10 - || (result == (sign ? LONG_MAX : LONG_MAX + 1) / 10 - && digval > (sign ? LONG_MAX : LONG_MAX + 1) % 10)) + || (result == (sign + ? (unsigned long int) LONG_MAX + : (unsigned long int) LONG_MAX + 1) / 10 + && digval > (sign + ? (unsigned long int) LONG_MAX + : (unsigned long int) LONG_MAX + 1) % 10)) { errno = ERANGE; return LONG_MAX * sign; @@ -258,21 +261,19 @@ __strtol_internal (const char *nptr, char **endptr, int base, int group) result += digval; } - return result * sign; + return (long int) result * sign; } -long int -weak_function +long int weak_function strtol (const char *nptr, char **endptr, int base) { return __strtol_internal (nptr, endptr, base, 0); } -unsigned long int -weak_function +unsigned long int weak_function __strtoul_internal (const char *nptr, char **endptr, int base, int group) { - long int result = 0; + unsigned long int result = 0; long int sign = 1; while (*nptr == ' ' || *nptr == '\t') @@ -309,7 +310,7 @@ __strtoul_internal (const char *nptr, char **endptr, int base, int group) while (*nptr >= '0' && *nptr <= '9') { - long int digval = *nptr - '0'; + unsigned long int digval = *nptr - '0'; if (result > LONG_MAX / 10 || (result == ULONG_MAX / 10 && digval > ULONG_MAX % 10)) { @@ -323,8 +324,7 @@ __strtoul_internal (const char *nptr, char **endptr, int base, int group) return result * sign; } -unsigned long int -weak_function +unsigned long int weak_function strtoul (const char *nptr, char **endptr, int base) { return (unsigned long int) __strtoul_internal (nptr, endptr, base, 0); |