mirror of
https://sourceware.org/git/glibc.git
synced 2025-08-08 17:42:12 +03:00
Update.
2002-02-03 Andreas Schwab <schwab@suse.de> * sysdeps/posix/readv.c: Use ssize_t for bytes_read. * sysdeps/posix/writev.c: Use ssize_t for bytes_written. Fix comment. 2002-02-03 Thorsten Kukuk <kukuk@suse.de> * sysdeps/posix/writev.c: Check for ssize_t overflow, don't use alloca if the memory reqirements are too high. 2002-02-03 Ulrich Drepper <drepper@redhat.com> * elf/dl-load.c (decompose_rpath): Avoid using strstr. * elf/dl-minimal.c (_strerror_r): Use _itoa instead of _itoa_word since the former is available anyway and speed isn't important here. * elf/dl-misc.c (_dl_debug_vdprintf): Likewise. * elf/dl-version.c (match_symbol): Likewise. (_dl_check_map_versions): Likewise. * elf/rtld.c (process_envvars): Likewise. (print_statistics): Likewise. * sysdeps/generic/dl-sysdep.c (_dl_show_auxv): Likewise. * elf/dl-minimal.c (_itoa): Always define it. Make it work for all bases. Add assert to catch uses of unimplemented features. (__strsep): Add assert to catch uses of unimplemented features. * elf/dl-object.c (_dl_new_object): Don't use rawmemchr. Use strchr and avoid inline optimization. * elf/rtld.c (process_envvars): Likewise. * elf/dl-open.c: Don't include <stdio-common/_itoa.h>. * elf/dl-profile.c (_dl_start_profile): Help compiler to avoid ffs. * elf/rtld.c (dl_main): Avoid strsep inline optimization. * stdio-common/_itoa.h: Minor simplifications of the code. * stdio-common/_itoa.c: Likewise. * elf/dl-reloc.c (_dl_relocate_object): Use _dl_debug_printf instead of _dl_printf for debugging info output. * sysdeps/mips/atomicity.h (exchange_and_add): Use branch likely.
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/* Internal function for converting integers to ASCII.
|
||||
Copyright (C) 1994, 1995, 1996, 1999, 2000 Free Software Foundation, Inc.
|
||||
Copyright (C) 1994,1995,1996,1999,2000,2002 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Torbjorn Granlund <tege@matematik.su.se>
|
||||
and Ulrich Drepper <drepper@gnu.org>.
|
||||
@@ -170,7 +170,6 @@ _itoa (value, buflim, base, upper_case)
|
||||
int upper_case;
|
||||
{
|
||||
const char *digits = upper_case ? _itoa_upper_digits : _itoa_lower_digits;
|
||||
char *bp = buflim;
|
||||
const struct base_table_t *brec = &_itoa_base_table[base - 2];
|
||||
|
||||
switch (base)
|
||||
@@ -191,7 +190,7 @@ _itoa (value, buflim, base, upper_case)
|
||||
work_lo = value & 0xfffffffful; \
|
||||
for (cnt = BITS_PER_MP_LIMB / BITS; cnt > 0; --cnt) \
|
||||
{ \
|
||||
*--bp = digits[work_lo & ((1ul << BITS) - 1)]; \
|
||||
*--buflim = digits[work_lo & ((1ul << BITS) - 1)]; \
|
||||
work_lo >>= BITS; \
|
||||
} \
|
||||
if (BITS_PER_MP_LIMB % BITS != 0) \
|
||||
@@ -205,7 +204,7 @@ _itoa (value, buflim, base, upper_case)
|
||||
if (work_hi == 0) \
|
||||
work_hi = work_lo; \
|
||||
else \
|
||||
*--bp = digits[work_lo]; \
|
||||
*--buflim = digits[work_lo]; \
|
||||
} \
|
||||
} \
|
||||
else \
|
||||
@@ -213,7 +212,7 @@ _itoa (value, buflim, base, upper_case)
|
||||
} \
|
||||
do \
|
||||
{ \
|
||||
*--bp = digits[work_hi & ((1 << BITS) - 1)]; \
|
||||
*--buflim = digits[work_hi & ((1 << BITS) - 1)]; \
|
||||
work_hi >>= BITS; \
|
||||
} \
|
||||
while (work_hi != 0); \
|
||||
@@ -239,7 +238,7 @@ _itoa (value, buflim, base, upper_case)
|
||||
umul_ppmm (x, dummy, value, base_multiplier);
|
||||
quo = (x + ((value - x) >> 1)) >> (brec->post_shift - 1);
|
||||
rem = value - quo * base;
|
||||
*--bp = digits[rem];
|
||||
*--buflim = digits[rem];
|
||||
value = quo;
|
||||
}
|
||||
else
|
||||
@@ -250,7 +249,7 @@ _itoa (value, buflim, base, upper_case)
|
||||
umul_ppmm (x, dummy, value, base_multiplier);
|
||||
quo = x >> brec->post_shift;
|
||||
rem = value - quo * base;
|
||||
*--bp = digits[rem];
|
||||
*--buflim = digits[rem];
|
||||
value = quo;
|
||||
}
|
||||
#endif
|
||||
@@ -376,7 +375,7 @@ _itoa (value, buflim, base, upper_case)
|
||||
umul_ppmm (x, dummy, ti, base_multiplier);
|
||||
quo = (x + ((ti - x) >> 1)) >> (brec->post_shift - 1);
|
||||
rem = ti - quo * base;
|
||||
*--bp = digits[rem];
|
||||
*--buflim = digits[rem];
|
||||
ti = quo;
|
||||
++ndig_for_this_limb;
|
||||
}
|
||||
@@ -388,7 +387,7 @@ _itoa (value, buflim, base, upper_case)
|
||||
umul_ppmm (x, dummy, ti, base_multiplier);
|
||||
quo = x >> brec->post_shift;
|
||||
rem = ti - quo * base;
|
||||
*--bp = digits[rem];
|
||||
*--buflim = digits[rem];
|
||||
ti = quo;
|
||||
++ndig_for_this_limb;
|
||||
}
|
||||
@@ -399,7 +398,7 @@ _itoa (value, buflim, base, upper_case)
|
||||
|
||||
quo = ti / base;
|
||||
rem = ti % base;
|
||||
*--bp = digits[rem];
|
||||
*--buflim = digits[rem];
|
||||
ti = quo;
|
||||
++ndig_for_this_limb;
|
||||
}
|
||||
@@ -408,7 +407,7 @@ _itoa (value, buflim, base, upper_case)
|
||||
if (n != 0)
|
||||
while (ndig_for_this_limb < brec->big.ndigits)
|
||||
{
|
||||
*--bp = '0';
|
||||
*--buflim = '0';
|
||||
++ndig_for_this_limb;
|
||||
}
|
||||
}
|
||||
@@ -418,5 +417,5 @@ _itoa (value, buflim, base, upper_case)
|
||||
break;
|
||||
}
|
||||
|
||||
return bp;
|
||||
return buflim;
|
||||
}
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/* Internal function for converting integers to ASCII.
|
||||
Copyright (C) 1994, 95, 96, 97, 98, 99 Free Software Foundation, Inc.
|
||||
Copyright (C) 1994, 95, 96, 97, 98, 99, 2002 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
@@ -35,14 +35,13 @@ _itoa_word (unsigned long value, char *buflim,
|
||||
{
|
||||
extern const char _itoa_upper_digits[], _itoa_lower_digits[];
|
||||
const char *digits = upper_case ? _itoa_upper_digits : _itoa_lower_digits;
|
||||
char *bp = buflim;
|
||||
|
||||
switch (base)
|
||||
{
|
||||
#define SPECIAL(Base) \
|
||||
case Base: \
|
||||
do \
|
||||
*--bp = digits[value % Base]; \
|
||||
*--buflim = digits[value % Base]; \
|
||||
while ((value /= Base) != 0); \
|
||||
break
|
||||
|
||||
@@ -51,10 +50,10 @@ _itoa_word (unsigned long value, char *buflim,
|
||||
SPECIAL (8);
|
||||
default:
|
||||
do
|
||||
*--bp = digits[value % base];
|
||||
*--buflim = digits[value % base];
|
||||
while ((value /= base) != 0);
|
||||
}
|
||||
return bp;
|
||||
return buflim;
|
||||
}
|
||||
|
||||
static inline char * __attribute__ ((unused))
|
||||
|
Reference in New Issue
Block a user