From 1c99f950d19adb5ed56839d2eee4ba6db1d179b4 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sun, 6 Mar 2005 07:27:56 +0000 Subject: [PATCH] * posix/regexec.c (check_node_accept_bytes): Correct cast to avoid warning. * posix/regex_internal.c (re_string_reconstruct): Add cast to avoid warning. (build_wcs_upper_buffer): Change type of bug to plain char. * locale/weightwc.h (findidx): Add casts to avoid warnings. * time/mktime.c (ranged_convert): Initialize tm to make the compiler happy. * wcsmbs/mbsrtowcs_l.c (__mbsrtowcs_l): Add casts to avoid warnings. * wcsmbs/wcsnrtombs.c (__wcsnrtombs): Add casts to avoid warnings. * wcsmbs/mbsnrtowcs.c: Add casts to avoid warnings. * wcsmbs/wcsrtombs.c (__wcsrtombs): Add casts to avoid warnings. * wcsmbs/wcrtomb.c (__wcrtomb): Add casts to avoid warnings. * wcsmbs/mbrtowc.c (__mbrtowc): Use unsigned char for outbuf. * posix/regex_internal.c [_LIBC] (build_wcs_buffer): Avoid using dynamically sized array. (build_wcs_upper_buffer): Likewise. --- ChangeLog | 18 ++++++++++++++++++ locale/weightwc.h | 14 +++++--------- posix/regex_internal.c | 15 +++++++++------ posix/regexec.c | 6 +++--- time/mktime.c | 5 +++-- wcsmbs/mbrtowc.c | 6 +++--- wcsmbs/mbsnrtowcs.c | 6 +++--- wcsmbs/mbsrtowcs_l.c | 12 ++++++------ wcsmbs/wcrtomb.c | 6 +++--- wcsmbs/wcsnrtombs.c | 6 +++--- wcsmbs/wcsrtombs.c | 6 +++--- 11 files changed, 59 insertions(+), 41 deletions(-) diff --git a/ChangeLog b/ChangeLog index 85cee67..a41628e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,19 @@ 2005-03-05 Ulrich Drepper + * posix/regexec.c (check_node_accept_bytes): Correct cast to avoid + warning. + * posix/regex_internal.c (re_string_reconstruct): Add cast to + avoid warning. + (build_wcs_upper_buffer): Change type of bug to plain char. + * locale/weightwc.h (findidx): Add casts to avoid warnings. + * time/mktime.c (ranged_convert): Initialize tm to make the + compiler happy. + * wcsmbs/mbsrtowcs_l.c (__mbsrtowcs_l): Add casts to avoid warnings. + * wcsmbs/wcsnrtombs.c (__wcsnrtombs): Add casts to avoid warnings. + * wcsmbs/mbsnrtowcs.c: Add casts to avoid warnings. + * wcsmbs/wcsrtombs.c (__wcsrtombs): Add casts to avoid warnings. + * wcsmbs/wcrtomb.c (__wcrtomb): Add casts to avoid warnings. + * wcsmbs/mbrtowc.c (__mbrtowc): Use unsigned char for outbuf. * wcsmbs/wctob.c (wctob): Make buf array of unsigned char. * sysdeps/generic/strchrnul.c: Add cast to avoid warning. * libio/iofwide.c: Add casts to avoid warnings. @@ -10,6 +24,10 @@ * iconv/gconv_simple.c (internal_utf8_loop): Make start unsigned to avoid warning. + * posix/regex_internal.c [_LIBC] (build_wcs_buffer): Avoid using + dynamically sized array. + (build_wcs_upper_buffer): Likewise. + 2005-03-05 Jakub Jelinek * include/bits/unistd.h: New file. diff --git a/locale/weightwc.h b/locale/weightwc.h index ff5e63a..436aa7e 100644 --- a/locale/weightwc.h +++ b/locale/weightwc.h @@ -1,4 +1,4 @@ -/* Copyright (C) 1996-2000, 2001,2003,2004 Free Software Foundation, Inc. +/* Copyright (C) 1996-2001,2003,2004,2005 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Ulrich Drepper, . @@ -22,12 +22,8 @@ auto inline int32_t __attribute ((always_inline)) findidx (const wint_t **cpp) { - int32_t i; - const wint_t *cp; - wint_t ch; - - ch = *(*cpp)++; - i = __collidx_table_lookup ((const char *) table, ch); + wint_t ch = *(*cpp)++; + int32_t i = __collidx_table_lookup ((const char *) table, ch); if (i >= 0) /* This is an index into the weight table. Cool. */ @@ -35,11 +31,11 @@ findidx (const wint_t **cpp) /* Oh well, more than one sequence starting with this byte. Search for the correct one. */ - cp = &extra[-i]; + const int32_t *cp = &extra[-i]; while (1) { size_t nhere; - const wint_t *usrc = *cpp; + const int32_t *usrc = (const int32_t *) *cpp; /* The first thing is the index. */ i = *cp++; diff --git a/posix/regex_internal.c b/posix/regex_internal.c index c3295a8..779d0b7 100644 --- a/posix/regex_internal.c +++ b/posix/regex_internal.c @@ -1,5 +1,5 @@ /* Extended regular expression matching and search library. - Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. + Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Isamu Hasegawa . @@ -214,7 +214,8 @@ build_wcs_buffer (pstr) re_string_t *pstr; { #ifdef _LIBC - unsigned char buf[pstr->mb_cur_max]; + unsigned char buf[MB_CUR_MAX]; + assert (MB_CUR_MAX >= pstr->mb_cur_max); #else unsigned char buf[64]; #endif @@ -282,9 +283,10 @@ build_wcs_upper_buffer (pstr) mbstate_t prev_st; int src_idx, byte_idx, end_idx, mbclen, remain_len; #ifdef _LIBC - unsigned char buf[pstr->mb_cur_max]; + char buf[MB_CUR_MAX]; + assert (MB_CUR_MAX >= pstr->mb_cur_max); #else - unsigned char buf[64]; + char buf[64]; #endif byte_idx = pstr->valid_len; @@ -666,8 +668,9 @@ re_string_reconstruct (pstr, idx, eflags) /* XXX Don't use mbrtowc, we know which conversion to use (UTF-8 -> UCS4). */ memset (&cur_state, 0, sizeof (cur_state)); - mlen = mbrtowc (&wc2, p, mlen, &cur_state) - - (raw + offset - p); + mlen = (mbrtowc (&wc2, (const char *) p, mlen, + &cur_state) + - (raw + offset - p)); if (mlen >= 0) { memset (&pstr->cur_state, '\0', diff --git a/posix/regexec.c b/posix/regexec.c index 636396e..3c226e3 100644 --- a/posix/regexec.c +++ b/posix/regexec.c @@ -1,5 +1,5 @@ /* Extended regular expression matching and search library. - Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. + Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Isamu Hasegawa . @@ -3781,8 +3781,8 @@ check_node_accept_bytes (dfa, node_idx, input, str_idx) { const re_charset_t *cset = node->opr.mbcset; # ifdef _LIBC - const unsigned char *pin = ((char *) re_string_get_buffer (input) - + str_idx); + const unsigned char *pin + = ((const unsigned char *) re_string_get_buffer (input) + str_idx); int j; uint32_t nrules; # endif /* _LIBC */ diff --git a/time/mktime.c b/time/mktime.c index c6ae56e..79221b8 100644 --- a/time/mktime.c +++ b/time/mktime.c @@ -1,5 +1,5 @@ /* Convert a `struct tm' to a time_t value. - Copyright (C) 1993-1999, 2002, 2003, 2004 Free Software Foundation, Inc. + Copyright (C) 1993-1999, 2002-2004, 2005 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Paul Eggert (eggert@twinsun.com). @@ -209,7 +209,8 @@ ranged_convert (struct tm *(*convert) (const time_t *, struct tm *), { time_t bad = *t; time_t ok = 0; - struct tm tm; + /* Initialize to make the compiler happy. */ + struct tm tm = { 0, }; /* BAD is a known unconvertible time_t, and OK is a known good one. Use binary search to narrow the range between BAD and OK until diff --git a/wcsmbs/mbrtowc.c b/wcsmbs/mbrtowc.c index 6932b04..eb2a312 100644 --- a/wcsmbs/mbrtowc.c +++ b/wcsmbs/mbrtowc.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1996, 1997, 1998, 1999, 2000, 2002, 2004 +/* Copyright (C) 1996, 1997, 1998, 1999, 2000, 2002, 2004, 2005 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1996. @@ -42,7 +42,7 @@ __mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps) size_t result; size_t dummy; const unsigned char *inbuf, *endbuf; - char *outbuf = (char *) (pwc ?: buf); + unsigned char *outbuf = (unsigned char *) (pwc ?: buf); const struct gconv_fcts *fcts; /* Set information for this step. */ @@ -56,7 +56,7 @@ __mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps) initial state. */ if (s == NULL) { - outbuf = (char *) buf; + outbuf = (unsigned char *) buf; s = ""; n = 1; } diff --git a/wcsmbs/mbsnrtowcs.c b/wcsmbs/mbsnrtowcs.c index 9ac06fe..ef5ca06 100644 --- a/wcsmbs/mbsnrtowcs.c +++ b/wcsmbs/mbsnrtowcs.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1996,1997,1998,1999,2000,2002 Free Software Foundation, Inc. +/* Copyright (C) 1996-2000, 2002, 2005 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1996. @@ -62,7 +62,7 @@ __mbsnrtowcs (dst, src, nmc, len, ps) if (nmc == 0) return 0; - srcend = *src + __strnlen (*src, nmc - 1) + 1; + srcend = (const unsigned char *) *src + __strnlen (*src, nmc - 1) + 1; /* Get the conversion functions. */ fcts = get_gconv_fcts (_NL_CURRENT_DATA (LC_CTYPE)); @@ -74,7 +74,7 @@ __mbsnrtowcs (dst, src, nmc, len, ps) if (dst == NULL) { wchar_t buf[64]; /* Just an arbitrary size. */ - const unsigned char *inbuf = *src; + const unsigned char *inbuf = (const unsigned char *) *src; result = 0; data.__outbufend = (unsigned char *) buf + sizeof (buf); diff --git a/wcsmbs/mbsrtowcs_l.c b/wcsmbs/mbsrtowcs_l.c index 8da3095..c44c8e5 100644 --- a/wcsmbs/mbsrtowcs_l.c +++ b/wcsmbs/mbsrtowcs_l.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2002, 2004 Free Software Foundation, Inc. +/* Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 2002. @@ -70,16 +70,16 @@ __mbsrtowcs_l (dst, src, len, ps, l) mbstate_t temp_state; wchar_t buf[64]; /* Just an arbitrary size. */ const unsigned char *inbuf = (const unsigned char *) *src; - const unsigned char *srcend = inbuf + strlen (inbuf) + 1; + const unsigned char *srcend = inbuf + strlen (*src) + 1; temp_state = *data.__statep; data.__statep = &temp_state; result = 0; - data.__outbufend = (char *) buf + sizeof (buf); + data.__outbufend = (unsigned char *) buf + sizeof (buf); do { - data.__outbuf = (char *) buf; + data.__outbuf = (unsigned char *) buf; status = DL_CALL_FCT (towc->__fct, (towc, &data, &inbuf, srcend, NULL, @@ -114,7 +114,7 @@ __mbsrtowcs_l (dst, src, len, ps, l) { /* Pessimistic guess as to how much input we can use. In the worst case we need one input byte for one output wchar_t. */ - srcend = srcp + __strnlen (srcp, len) + 1; + srcend = srcp + __strnlen ((const char *) srcp, len) + 1; status = DL_CALL_FCT (towc->__fct, (towc, &data, &srcp, srcend, NULL, @@ -131,7 +131,7 @@ __mbsrtowcs_l (dst, src, len, ps, l) } /* Make the end if the input known to the caller. */ - *src = srcp; + *src = (const char *) srcp; result = (wchar_t *) data.__outbuf - dst; diff --git a/wcsmbs/wcrtomb.c b/wcsmbs/wcrtomb.c index 3814479..f7971e7 100644 --- a/wcsmbs/wcrtomb.c +++ b/wcsmbs/wcrtomb.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1996,1997,1998,2000,2002 Free Software Foundation, Inc. +/* Copyright (C) 1996,1997,1998,2000,2002,2005 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1996. @@ -60,8 +60,8 @@ __wcrtomb (char *s, wchar_t wc, mbstate_t *ps) } /* Tell where we want to have the result. */ - data.__outbuf = s; - data.__outbufend = s + MB_CUR_MAX; + data.__outbuf = (unsigned char *) s; + data.__outbufend = (unsigned char *) s + MB_CUR_MAX; /* Get the conversion functions. */ fcts = get_gconv_fcts (_NL_CURRENT_DATA (LC_CTYPE)); diff --git a/wcsmbs/wcsnrtombs.c b/wcsmbs/wcsnrtombs.c index 0ff26d6..0252b7f 100644 --- a/wcsmbs/wcsnrtombs.c +++ b/wcsmbs/wcsnrtombs.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1996-2000, 2002, 2003 Free Software Foundation, Inc. +/* Copyright (C) 1996-2000, 2002, 2003, 2005 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1996. @@ -104,8 +104,8 @@ __wcsnrtombs (dst, src, nwc, len, ps) of the string. */ size_t dummy; - data.__outbuf = dst; - data.__outbufend = dst + len; + data.__outbuf = (unsigned char *) dst; + data.__outbufend = (unsigned char *) dst + len; status = DL_CALL_FCT (tomb->__fct, (tomb, &data, (const unsigned char **) src, diff --git a/wcsmbs/wcsrtombs.c b/wcsmbs/wcsrtombs.c index 8b444ed..d41ca53 100644 --- a/wcsmbs/wcsrtombs.c +++ b/wcsmbs/wcsrtombs.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1996-2000, 2002, 2003 Free Software Foundation, Inc. +/* Copyright (C) 1996-2000, 2002, 2003, 2005 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper , 1996. @@ -105,8 +105,8 @@ __wcsrtombs (dst, src, len, ps) const wchar_t *srcend = *src + __wcsnlen (*src, len) + 1; size_t dummy; - data.__outbuf = dst; - data.__outbufend = dst + len; + data.__outbuf = (unsigned char *) dst; + data.__outbufend = (unsigned char *) dst + len; status = DL_CALL_FCT (tomb->__fct, (tomb, &data, (const unsigned char **) src, -- 2.7.4