summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog18
-rw-r--r--locale/weightwc.h14
-rw-r--r--posix/regex_internal.c15
-rw-r--r--posix/regexec.c6
-rw-r--r--time/mktime.c5
-rw-r--r--wcsmbs/mbrtowc.c6
-rw-r--r--wcsmbs/mbsnrtowcs.c6
-rw-r--r--wcsmbs/mbsrtowcs_l.c12
-rw-r--r--wcsmbs/wcrtomb.c6
-rw-r--r--wcsmbs/wcsnrtombs.c6
-rw-r--r--wcsmbs/wcsrtombs.c6
11 files changed, 59 insertions, 41 deletions
diff --git a/ChangeLog b/ChangeLog
index 85cee67913..a41628e221 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,19 @@
 2005-03-05  Ulrich Drepper  <drepper@redhat.com>
 
+	* 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  <jakub@redhat.com>
 
 	* include/bits/unistd.h: New file.
diff --git a/locale/weightwc.h b/locale/weightwc.h
index ff5e63aeef..436aa7e548 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, <drepper@cygnus.com>.
 
@@ -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 c3295a851c..779d0b7334 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 <isamu@yamato.ibm.com>.
 
@@ -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 636396e6f7..3c226e3c20 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 <isamu@yamato.ibm.com>.
 
@@ -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 c6ae56ee60..79221b8a74 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 6932b047ae..eb2a312b7c 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 <drepper@gnu.org>, 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 9ac06fe6c2..ef5ca06e2f 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 <drepper@gnu.org>, 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 8da3095566..c44c8e5066 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 <drepper@gnu.org>, 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 38144796f8..f7971e704b 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 <drepper@cygnus.com>, 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 0ff26d6671..0252b7fa23 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 <drepper@gnu.org>, 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 8b444ed8a2..d41ca5366b 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 <drepper@gnu.org>, 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,