diff options
-rw-r--r-- | ChangeLog | 23 | ||||
-rw-r--r-- | iconv/gconv_conf.c | 2 | ||||
-rw-r--r-- | locale/localeinfo.h | 2 | ||||
-rw-r--r-- | locale/setlocale.c | 4 | ||||
-rw-r--r-- | stdlib/fmtmsg.c | 2 | ||||
-rw-r--r-- | string/bits/string2.h | 20 |
6 files changed, 42 insertions, 11 deletions
diff --git a/ChangeLog b/ChangeLog index cd73f2d026..fe79a6c82e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,26 @@ +1999-04-30 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> + + * string/bits/string2.h (memset): Revert to previous version if + unaligned writes are not available. + +1999-04-30 Ulrich Drepper <drepper@cygnus.com> + + * sysdeps/i386/i486/bits/string.h (__memset_gc): Help generating + better code in presence of the asm. + +1999-04-30 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> + + * stdlib/fmtmsg.c (keywords): Increase array size for faster + indexing. + + * locale/localeinfo.h (_nl_category_names): Increase array element + size for faster indexing. + * locale/setlocale.c (_nl_category_names): Adjusted. + +1999-04-30 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> + + * iconv/gconv_conf.c (add_alias): Remove wrong cast. + 1999-05-01 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> * sysdeps/m68k/stackinfo.h: New file. diff --git a/iconv/gconv_conf.c b/iconv/gconv_conf.c index dce913da74..0d25c22416 100644 --- a/iconv/gconv_conf.c +++ b/iconv/gconv_conf.c @@ -209,7 +209,7 @@ add_alias (char *rp, void *modules) inserted = (void **) __tsearch (new_alias, &__gconv_alias_db, __gconv_alias_compare); - if (inserted == NULL || *inserted != (void **) new_alias) + if (inserted == NULL || *inserted != new_alias) /* Something went wrong, free this entry. */ free (new_alias); } diff --git a/locale/localeinfo.h b/locale/localeinfo.h index 9f58a743c8..dddacfe28d 100644 --- a/locale/localeinfo.h +++ b/locale/localeinfo.h @@ -104,7 +104,7 @@ extern struct locale_data *_nl_current_##category; #include "categories.def" #undef DEFINE_CATEGORY -extern const char _nl_category_names[LC_ALL + 1][12]; +extern const char _nl_category_names[LC_ALL + 1][16]; extern const size_t _nl_category_name_sizes[LC_ALL + 1]; extern struct locale_data * *const _nl_current[LC_ALL + 1]; diff --git a/locale/setlocale.c b/locale/setlocale.c index 1bcc4d5375..5f152e3bba 100644 --- a/locale/setlocale.c +++ b/locale/setlocale.c @@ -66,10 +66,10 @@ struct locale_data *const _nl_C[] = /* Define an array of category names (also the environment variable names), indexed by integral category. - We have entries of fixed width (12 for now) do avoid an array of + We have entries of fixed width (16 for now) do avoid an array of pointers. Update the size of the outer array if new, longer locale names are introduced. */ -const char _nl_category_names[][12] = +const char _nl_category_names[][16] = { #define DEFINE_CATEGORY(category, category_name, items, a, b, c, d) \ [category] = category_name, diff --git a/stdlib/fmtmsg.c b/stdlib/fmtmsg.c index 082839a956..038c2aee37 100644 --- a/stdlib/fmtmsg.c +++ b/stdlib/fmtmsg.c @@ -43,7 +43,7 @@ static const struct { size_t len; /* Adjust the size if new elements are added. */ - const char name[9]; + const char name[12]; } keywords[] = { { 5, "label" }, diff --git a/string/bits/string2.h b/string/bits/string2.h index 3f7784ed38..aedadf439c 100644 --- a/string/bits/string2.h +++ b/string/bits/string2.h @@ -93,7 +93,8 @@ __STRING2_COPY_TYPE (8); /* Set N bytes of S to C. */ #ifndef _HAVE_STRING_ARCH_memset -# define memset(s, c, n) \ +# if _STRING_ARCH_unaligned +# define memset(s, c, n) \ (__extension__ (__builtin_constant_p (n) && (n) <= 16 \ ? ((n) == 1 \ ? __memset_1 (s, c) \ @@ -102,10 +103,10 @@ __STRING2_COPY_TYPE (8); ? ({ void *__s = (s); __bzero (__s, n); __s; }) \ : memset (s, c, n)))) -#define __memset_1(s, c) ({ void *__s = (s); \ +# define __memset_1(s, c) ({ void *__s = (s); \ *((__uint8_t *) __s) = (__uint8_t) c; __s; }) -#define __memset_gc(s, c, n) \ +# define __memset_gc(s, c, n) \ ({ void *__s = (s); \ __uint32_t *__ts = (__uint32_t *) __s; \ __uint8_t __c = (__uint8_t) (c); \ @@ -157,10 +158,17 @@ __STRING2_COPY_TYPE (8); } \ \ __s; }) +# else +# define memset(s, c, n) \ + (__extension__ (__builtin_constant_p (c) && (c) == '\0' \ + ? ({ void *__s = (s); __bzero (__s, n); __s; }) \ + : memset (s, c, n))) +# endif + /* GCC optimizes memset(s, 0, n) but not bzero(s, n). */ -#if defined __GNUC__ && __GNUC__ >= 2 -# define __bzero(s, n) __builtin_memset(s, '\0', n) -#endif +# if defined __GNUC__ && __GNUC__ >= 2 +# define __bzero(s, n) __builtin_memset(s, '\0', n) +# endif #endif |