about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog37
-rw-r--r--dlfcn/bug-atexit1.c2
-rw-r--r--elf/order2mod2.c2
-rw-r--r--iconvdata/bug-iconv4.c2
-rw-r--r--libio/obprintf.c4
-rw-r--r--locale/programs/simple-hash.c4
-rw-r--r--posix/bug-regex22.c10
-rw-r--r--posix/bug-regex5.c2
-rwxr-xr-xposix/transbug.c2
-rw-r--r--resolv/herror.c1
-rw-r--r--stdio-common/tst-fgets.c2
-rw-r--r--string/test-memccpy.c6
-rw-r--r--string/test-memchr.c13
-rw-r--r--string/test-memcmp.c8
-rw-r--r--string/test-memcpy.c10
-rw-r--r--string/test-memmove.c10
-rw-r--r--string/test-strcat.c9
-rw-r--r--string/test-strchr.c14
-rw-r--r--string/test-strcmp.c8
-rw-r--r--string/test-strcpy.c9
-rw-r--r--string/test-strlen.c9
-rw-r--r--string/test-strncpy.c10
-rw-r--r--string/test-strpbrk.c19
-rw-r--r--string/test-strrchr.c16
-rw-r--r--string/test-strspn.c14
-rw-r--r--wcsmbs/tst-mbsrtowcs.c4
26 files changed, 138 insertions, 89 deletions
diff --git a/ChangeLog b/ChangeLog
index b39c0393c9..b0577c701b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,9 +1,44 @@
+2005-12-27  Roland McGrath  <roland@redhat.com>
+
+	* posix/tst-execle1.c (do_test): Add a const.
+	* posix/tst-execle2.c (do_test): Likewise.
+
+	* posix/transbug.c (run_test): Add some casts.
+	* posix/bug-regex22.c (main): Likewise.
+	* posix/bug-regex5.c (main): Likewise.
+	* wcsmbs/tst-mbsrtowcs.c (main): Likewise.
+	* string/test-strspn.c (do_test, do_random_tests): Likewise.
+	* string/test-strrchr.c (do_test, do_random_tests): Likewise.
+	* string/test-strlen.c (do_random_tests): Likewise.
+	* string/test-strpbrk.c (do_test, do_random_tests): Likewise.
+	* string/test-strcmp.c (do_random_tests): Likewise.
+	* string/test-strchr.c (do_test, do_random_tests): Likewise.
+	* string/test-strcat.c (do_test, do_random_tests): Likewise.
+	* string/test-strncpy.c (do_random_tests): Likewise.
+	* string/test-strcpy.c (do_test, do_random_tests): Likewise.
+	* string/test-memccpy.c (do_test): Likewise.
+	* string/test-memmove.c (do_test, do_random_tests): Likewise.
+	* string/test-memcpy.c (do_test, do_random_tests): Likewise.
+	* string/test-memcmp.c (do_test, do_random_tests): Likewise.
+	* string/test-memchr.c (do_test, do_random_tests): Likewise.
+	* dlfcn/bug-atexit1.c (do_test): Fix up prototype in cast.
+	* stdio-common/tst-fgets.c (do_test): Add a cast.
+	* iconvdata/bug-iconv4.c (xiconv): Add a cast.
+
+	* locale/programs/simple-hash.c (insert_entry_2): Remove useless casts.
+
+	* resolv/herror.c (herror): Remove unused extern decl.
+
+	* libio/obprintf.c: Include "strfile.h".
+
+	* elf/order2mod2.c (init): Cast ignored value to void.
+
 2005-12-27  Ulrich Drepper  <drepper@redhat.com>
 
 	* elf/tst-tls13.c (do_test): Avoid using the library path when
 	looking for tst-tlsmod13a.so.
 
-	* stdio-common/tstdiomisc.c: If FLT_EVEL_METHOD is 2 use long
+	* stdio-common/tstdiomisc.c: If FLT_EVAL_METHOD is 2, use long
 	double math to generate NaN results.
 
 	* sysdeps/unix/sysv/linux/sparc/bits/errno.h: Define EOWNERDEAD
diff --git a/dlfcn/bug-atexit1.c b/dlfcn/bug-atexit1.c
index 3bdb5587b1..e2d1d2f776 100644
--- a/dlfcn/bug-atexit1.c
+++ b/dlfcn/bug-atexit1.c
@@ -10,7 +10,7 @@ do_test (void)
   for (int i = 0; i < 2; ++i)
     {
       void *dso = dlopen ("$ORIGIN/bug-atexit1-lib.so", RTLD_NOW);
-      void (*fn) (void) = (void (*)()) dlsym (dso, "foo");
+      void (*fn) (void) = (void (*) (void)) dlsym (dso, "foo");
       fn ();
       dlclose (dso);
       puts ("round done");
diff --git a/elf/order2mod2.c b/elf/order2mod2.c
index b03fb60fa3..026cd2acc4 100644
--- a/elf/order2mod2.c
+++ b/elf/order2mod2.c
@@ -7,7 +7,7 @@ void
 __attribute__ ((constructor))
 init (void)
 {
-  foo () - bar ();
+  (void) (foo () - bar ());
 }
 
 static void
diff --git a/iconvdata/bug-iconv4.c b/iconvdata/bug-iconv4.c
index f6bfebd39f..4469034b93 100644
--- a/iconvdata/bug-iconv4.c
+++ b/iconvdata/bug-iconv4.c
@@ -15,7 +15,7 @@ xiconv (iconv_t cd, int out_size)
 {
   unsigned char euc[4];
   char *inp = (char *) UCS_STR;
-  char *outp = euc;
+  char *outp = (char *) euc;
   size_t inbytesleft = strlen (UCS_STR);
   size_t outbytesleft = out_size;
   size_t ret;
diff --git a/libio/obprintf.c b/libio/obprintf.c
index 19300e80a3..1167a93d0b 100644
--- a/libio/obprintf.c
+++ b/libio/obprintf.c
@@ -1,5 +1,6 @@
 /* Print output of stream to given obstack.
-   Copyright (C) 1996,1997,1999-2003, 2004 Free Software Foundation, Inc.
+   Copyright (C) 1996,1997,1999,2000,2001,2002,2003,2004,2005
+	Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
 
@@ -23,6 +24,7 @@
 #include <stdlib.h>
 #endif
 #include "libioP.h"
+#include "strfile.h"
 #include <assert.h>
 #include <string.h>
 #include <errno.h>
diff --git a/locale/programs/simple-hash.c b/locale/programs/simple-hash.c
index 86bbdd5b13..de8998cc7a 100644
--- a/locale/programs/simple-hash.c
+++ b/locale/programs/simple-hash.c
@@ -146,13 +146,13 @@ insert_entry_2 (htab, key, keylen, hval, idx, data)
   if ((hash_entry *) htab->first == NULL)
     {
       table[idx].next = &table[idx];
-      *(hash_entry **) &htab->first = &table[idx];
+      htab->first = &table[idx];
     }
   else
     {
       table[idx].next = ((hash_entry *) htab->first)->next;
       ((hash_entry *) htab->first)->next = &table[idx];
-      *(hash_entry **) &htab->first = &table[idx];
+      htab->first = &table[idx];
     }
 
   ++htab->filled;
diff --git a/posix/bug-regex22.c b/posix/bug-regex22.c
index 1636202d36..c5bc94869b 100644
--- a/posix/bug-regex22.c
+++ b/posix/bug-regex22.c
@@ -1,5 +1,5 @@
 /* Test re.translate != NULL.
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Jakub Jelinek <jakub@redhat.com>, 2004.
 
@@ -40,7 +40,7 @@ main (void)
   re_set_syntax (RE_SYNTAX_POSIX_EGREP);
 
   memset (&re, 0, sizeof (re));
-  re.translate = trans;
+  re.translate = (unsigned char *) trans;
   s = re_compile_pattern ("\\W", 2, &re);
 
   if (s != NULL)
@@ -68,7 +68,7 @@ main (void)
     }
 
   memset (&re, 0, sizeof (re));
-  re.translate = trans;
+  re.translate = (unsigned char *) trans;
   s = re_compile_pattern ("\\w", 2, &re);
 
   if (s != NULL)
@@ -96,7 +96,7 @@ main (void)
     }
 
   memset (&re, 0, sizeof (re));
-  re.translate = trans;
+  re.translate = (unsigned char *) trans;
   s = re_compile_pattern ("[[:DIGIT:]]", 11, &re);
   if (s == NULL)
     {
@@ -106,7 +106,7 @@ main (void)
     }
 
   memset (&re, 0, sizeof (re));
-  re.translate = trans;
+  re.translate = (unsigned char *) trans;
   s = re_compile_pattern ("[[:DIGIT:]]", 2, &re);
   if (s == NULL)
     {
diff --git a/posix/bug-regex5.c b/posix/bug-regex5.c
index ee4d652157..f199ffbfd3 100644
--- a/posix/bug-regex5.c
+++ b/posix/bug-regex5.c
@@ -41,7 +41,7 @@ main (void)
 	{
 	  char elem[256];
 	  idx = symb_table[2 * i + 1];
-	  strncpy (elem, extra + idx + 1, extra[idx]);
+	  strncpy (elem, (const char *) (extra + idx + 1), extra[idx]);
 	  elem[extra[idx]] = '\0';
 	  printf ("Found a collating element: %s\n", elem);
 	  ++found;
diff --git a/posix/transbug.c b/posix/transbug.c
index 3ae4929593..d0983b4d44 100755
--- a/posix/transbug.c
+++ b/posix/transbug.c
@@ -79,7 +79,7 @@ run_test (const char *pattern, struct re_registers *regs)
       exit (1);
     }
 
-  pat.translate = (char *) casetable;
+  pat.translate = (unsigned char *) casetable;
 
   err = re_compile_pattern (pattern, strlen (pattern), &pat);
   if (err != NULL)
diff --git a/resolv/herror.c b/resolv/herror.c
index c143cec28c..0aaf29f9db 100644
--- a/resolv/herror.c
+++ b/resolv/herror.c
@@ -80,7 +80,6 @@ const int	h_nerr = { sizeof h_errlist / sizeof h_errlist[0] };
 void
 herror(const char *s) {
 	struct iovec iov[4], *v = iov;
-	extern int * __h_errno();
 
 	if (s != NULL && *s != '\0') {
 		v->iov_base = (/*noconst*/ char *)s;
diff --git a/stdio-common/tst-fgets.c b/stdio-common/tst-fgets.c
index b8e205c7dc..0aa9030e3a 100644
--- a/stdio-common/tst-fgets.c
+++ b/stdio-common/tst-fgets.c
@@ -5,7 +5,7 @@
 static int
 do_test (void)
 {
-  FILE *fp = fmemopen ("hello", 5, "r");
+  FILE *fp = fmemopen ((char *) "hello", 5, "r");
   char buf[2];
   char *bp = fgets (buf, sizeof (buf), fp);
   printf ("fgets: %s\n", bp == buf ? "OK" : "ERROR");
diff --git a/string/test-memccpy.c b/string/test-memccpy.c
index b581408f37..26532633df 100644
--- a/string/test-memccpy.c
+++ b/string/test-memccpy.c
@@ -1,5 +1,5 @@
 /* Test and measure memccpy functions.
-   Copyright (C) 1999, 2002, 2003 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2003, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Written by Jakub Jelinek <jakub@redhat.com>, 1999.
 
@@ -109,8 +109,8 @@ do_test (size_t align1, size_t align2, int c, size_t len, size_t n,
   if (align2 + len >= page_size)
     return;
 
-  s1 = buf1 + align1;
-  s2 = buf2 + align2;
+  s1 = (char *) (buf1 + align1);
+  s2 = (char *) (buf2 + align2);
 
   for (i = 0; i < len - 1; ++i)
     {
diff --git a/string/test-memchr.c b/string/test-memchr.c
index df866fe2d7..c233ead5dd 100644
--- a/string/test-memchr.c
+++ b/string/test-memchr.c
@@ -1,5 +1,5 @@
 /* Test and measure memchr functions.
-   Copyright (C) 1999, 2002, 2003 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2003, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Written by Jakub Jelinek <jakub@redhat.com>, 1999.
 
@@ -89,7 +89,7 @@ do_test (size_t align, size_t pos, size_t len, int seek_char)
     {
       buf1[align + pos] = seek_char;
       buf1[align + len] = -seek_char;
-      result = buf1 + align + pos;
+      result = (char *) (buf1 + align + pos);
     }
   else
     {
@@ -101,7 +101,7 @@ do_test (size_t align, size_t pos, size_t len, int seek_char)
     printf ("Length %4zd, alignment %2zd:", pos, align);
 
   FOR_EACH_IMPL (impl, 0)
-    do_one_test (impl, buf1 + align, seek_char, len, result);
+    do_one_test (impl, (char *) (buf1 + align), seek_char, len, result);
 
   if (HP_TIMING_AVAIL)
     putchar ('\n');
@@ -144,16 +144,17 @@ do_random_tests (void)
 	}
 
       if (pos < len)
-	result = p + pos + align;
+	result = (char *) (p + pos + align);
       else
 	result = NULL;
 
       FOR_EACH_IMPL (impl, 1)
-	if (CALL (impl, p + align, seek_char, len) != result)
+	if (CALL (impl, (char *) (p + align), seek_char, len) != result)
 	  {
 	    error (0, 0, "Iteration %zd - wrong result in function %s (%zd, %d, %zd, %zd) %p != %p, p %p",
 		   n, impl->name, align, seek_char, len, pos,
-		   CALL (impl, p + align, seek_char, len), result, p);
+		   CALL (impl, (char *) (p + align), seek_char, len),
+		   result, p);
 	    ret = 1;
 	  }
     }
diff --git a/string/test-memcmp.c b/string/test-memcmp.c
index 89c104386b..af07a5e599 100644
--- a/string/test-memcmp.c
+++ b/string/test-memcmp.c
@@ -1,5 +1,5 @@
 /* Test and measure memcmp functions.
-   Copyright (C) 1999, 2002, 2003 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2003, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Written by Jakub Jelinek <jakub@redhat.com>, 1999.
 
@@ -88,8 +88,8 @@ do_test (size_t align1, size_t align2, size_t len, int exp_result)
   if (align2 + len >= page_size)
     return;
 
-  s1 = buf1 + align1;
-  s2 = buf2 + align2;
+  s1 = (char *) (buf1 + align1);
+  s2 = (char *) (buf2 + align2);
 
   for (i = 0; i < len; i++)
     s1[i] = s2[i] = 1 + 23 * i % 255;
@@ -161,7 +161,7 @@ do_random_tests (void)
 
       FOR_EACH_IMPL (impl, 1)
 	{
-	  r = CALL (impl, p1 + align1, p2 + align2, len);
+	  r = CALL (impl, (char *) (p1 + align1), (char *) (p2 + align2), len);
 	  /* Test whether on 64-bit architectures where ABI requires
 	     callee to promote has the promotion been done.  */
 	  asm ("" : "=g" (r) : "0" (r));
diff --git a/string/test-memcpy.c b/string/test-memcpy.c
index adc90da767..7b0723a65a 100644
--- a/string/test-memcpy.c
+++ b/string/test-memcpy.c
@@ -1,5 +1,5 @@
 /* Test and measure memcpy functions.
-   Copyright (C) 1999, 2002, 2003 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2003, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Written by Jakub Jelinek <jakub@redhat.com>, 1999.
 
@@ -102,8 +102,8 @@ do_test (size_t align1, size_t align2, size_t len)
   if (align2 + len >= page_size)
     return;
 
-  s1 = buf1 + align1;
-  s2 = buf2 + align2;
+  s1 = (char *) (buf1 + align1);
+  s2 = (char *) (buf2 + align2);
 
   for (i = 0, j = 1; i < len; i++, j += 23)
     s1[i] = j;
@@ -190,7 +190,9 @@ do_random_tests (void)
 	  if (j > size2)
 	    j = size2;
 	  memset (p2, c, j);
-	  res = CALL (impl, p2 + align2, p1 + align1, len);
+	  res = (unsigned char *) CALL (impl,
+					(char *) (p2 + align2),
+					(char *) (p1 + align1), len);
 	  if (res != MEMCPY_RESULT (p2 + align2, len))
 	    {
 	      error (0, 0, "Iteration %zd - wrong result in function %s (%zd, %zd, %zd) %p != %p",
diff --git a/string/test-memmove.c b/string/test-memmove.c
index 9531aa82d8..2f3a8f7631 100644
--- a/string/test-memmove.c
+++ b/string/test-memmove.c
@@ -101,8 +101,8 @@ do_test (size_t align1, size_t align2, size_t len)
   if (align2 + len >= page_size)
     return;
 
-  s1 = buf1 + align1;
-  s2 = buf2 + align2;
+  s1 = (char *) (buf1 + align1);
+  s2 = (char *) (buf2 + align2);
 
   for (i = 0, j = 1; i < len; i++, j += 23)
     s1[i] = j;
@@ -111,7 +111,7 @@ do_test (size_t align1, size_t align2, size_t len)
     printf ("Length %4zd, alignment %2zd/%2zd:", len, align1, align2);
 
   FOR_EACH_IMPL (impl, 0)
-    do_one_test (impl, s2, buf2 + align1, s1, len);
+    do_one_test (impl, s2, (char *) (buf2 + align1), s1, len);
 
   if (HP_TIMING_AVAIL)
     putchar ('\n');
@@ -179,7 +179,9 @@ do_random_tests (void)
 	{
 	  memset (p2 + dststart, c, dstend - dststart);
 	  memcpy (p2 + srcstart, p1 + srcstart, srcend - srcstart);
-	  res = CALL (impl, p2 + align2, p2 + align1, len);
+	  res = (unsigned char *) CALL (impl,
+					(char *) (p2 + align2),
+					(char *) (p2 + align1), len);
 	  if (res != p2 + align2)
 	    {
 	      error (0, 0, "Iteration %zd - wrong result in function %s (%zd, %zd, %zd) %p != %p",
diff --git a/string/test-strcat.c b/string/test-strcat.c
index 53c8462839..443752069c 100644
--- a/string/test-strcat.c
+++ b/string/test-strcat.c
@@ -1,5 +1,5 @@
 /* Test and measure strcat functions.
-   Copyright (C) 1999, 2002, 2003 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2003, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Written by Jakub Jelinek <jakub@redhat.com>, 1999.
 
@@ -91,8 +91,8 @@ do_test (size_t align1, size_t align2, size_t len1, size_t len2, int max_char)
   if (align2 + len1 + len2 >= page_size)
     return;
 
-  s1 = buf1 + align1;
-  s2 = buf2 + align2;
+  s1 = (char *) (buf1 + align1);
+  s2 = (char *) (buf2 + align2);
 
   for (i = 0; i < len1; ++i)
     s1[i] = 32 + 23 * i % (max_char - 32);
@@ -175,7 +175,8 @@ do_random_tests (void)
 	  memset (p2 - 64, '\1', align2 + 64);
 	  memset (p2 + align2 + len2 + 1, '\1', 512 - align2 - len2 - 1);
 	  memcpy (p2 + align2, buf1, len2 + 1);
-	  res = CALL (impl, p2 + align2, p1 + align1);
+	  res = (unsigned char *) CALL (impl, (char *) (p2 + align2),
+					(char *) (p1 + align1));
 	  if (res != p2 + align2)
 	    {
 	      error (0, 0, "Iteration %zd - wrong result in function %s (%zd, %zd, %zd %zd) %p != %p",
diff --git a/string/test-strchr.c b/string/test-strchr.c
index 1333ebc8bc..cf25b449d9 100644
--- a/string/test-strchr.c
+++ b/string/test-strchr.c
@@ -101,10 +101,10 @@ do_test (size_t align, size_t pos, size_t len, int seek_char, int max_char)
   if (pos < len)
     {
       buf1[align + pos] = seek_char;
-      result = buf1 + align + pos;
+      result = (char *) (buf1 + align + pos);
     }
   else if (seek_char == 0)
-    result = buf1 + align + len;
+    result = (char *) (buf1 + align + len);
   else
     result = NULL;
 
@@ -112,7 +112,7 @@ do_test (size_t align, size_t pos, size_t len, int seek_char, int max_char)
     printf ("Length %4zd, alignment %2zd:", pos, align);
 
   FOR_EACH_IMPL (impl, 0)
-    do_one_test (impl, buf1 + align, seek_char, result);
+    do_one_test (impl, (char *) (buf1 + align), seek_char, result);
 
   if (HP_TIMING_AVAIL)
     putchar ('\n');
@@ -166,18 +166,18 @@ do_random_tests (void)
 	}
 
       if (pos <= len)
-	result = p + pos + align;
+	result = (char *) (p + pos + align);
       else if (seek_char == 0)
-	result = p + len + align;
+	result = (char *) (p + len + align);
       else
 	result = NULL;
 
       FOR_EACH_IMPL (impl, 1)
-	if (CALL (impl, p + align, seek_char) != result)
+	if (CALL (impl, (char *) (p + align), seek_char) != result)
 	  {
 	    error (0, 0, "Iteration %zd - wrong result in function %s (%zd, %d, %zd, %zd) %p != %p, p %p",
 		   n, impl->name, align, seek_char, len, pos,
-		   CALL (impl, p + align, seek_char), result, p);
+		   CALL (impl, (char *) (p + align), seek_char), result, p);
 	    ret = 1;
 	  }
     }
diff --git a/string/test-strcmp.c b/string/test-strcmp.c
index af49f14fe1..769e9828fd 100644
--- a/string/test-strcmp.c
+++ b/string/test-strcmp.c
@@ -1,5 +1,5 @@
 /* Test and measure strcmp functions.
-   Copyright (C) 1999, 2002, 2003 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2003, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Written by Jakub Jelinek <jakub@redhat.com>, 1999.
 
@@ -103,8 +103,8 @@ do_test (size_t align1, size_t align2, size_t len, int max_char,
   if (align2 + len + 1 >= page_size)
     return;
 
-  s1 = buf1 + align1;
-  s2 = buf2 + align2;
+  s1 = (char *) (buf1 + align1);
+  s2 = (char *) (buf2 + align2);
 
   for (i = 0; i < len; i++)
     s1[i] = s2[i] = 1 + 23 * i % max_char;
@@ -198,7 +198,7 @@ do_random_tests (void)
 
       FOR_EACH_IMPL (impl, 1)
 	{
-	  r = CALL (impl, p1 + align1, p2 + align2);
+	  r = CALL (impl, (char *) (p1 + align1), (char *) (p2 + align2));
 	  /* Test whether on 64-bit architectures where ABI requires
 	     callee to promote has the promotion been done.  */
 	  asm ("" : "=g" (r) : "0" (r));
diff --git a/string/test-strcpy.c b/string/test-strcpy.c
index dbfbb9294d..6a2ea2510e 100644
--- a/string/test-strcpy.c
+++ b/string/test-strcpy.c
@@ -1,5 +1,5 @@
 /* Test and measure strcpy functions.
-   Copyright (C) 1999, 2002, 2003 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2003, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Written by Jakub Jelinek <jakub@redhat.com>, 1999.
 
@@ -92,8 +92,8 @@ do_test (size_t align1, size_t align2, size_t len, int max_char)
   if (align2 + len >= page_size)
     return;
 
-  s1 = buf1 + align1;
-  s2 = buf2 + align2;
+  s1 = (char *) (buf1 + align1);
+  s2 = (char *) (buf2 + align2);
 
   for (i = 0; i < len; i++)
     s1[i] = 32 + 23 * i % (max_char - 32);
@@ -148,7 +148,8 @@ do_random_tests (void)
       FOR_EACH_IMPL (impl, 1)
 	{
 	  memset (p2 - 64, '\1', 512 + 64);
-	  res = CALL (impl, p2 + align2, p1 + align1);
+	  res = (unsigned char *) CALL (impl, (char *) (p2 + align2),
+					(char *) (p1 + align1));
 	  if (res != STRCPY_RESULT (p2 + align2, len))
 	    {
 	      error (0, 0, "Iteration %zd - wrong result in function %s (%zd, %zd, %zd) %p != %p",
diff --git a/string/test-strlen.c b/string/test-strlen.c
index 82ad95e5cc..e01befbf46 100644
--- a/string/test-strlen.c
+++ b/string/test-strlen.c
@@ -1,5 +1,5 @@
 /* Test and measure strlen functions.
-   Copyright (C) 1999, 2002, 2003 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2003, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Written by Jakub Jelinek <jakub@redhat.com>, 1999.
 
@@ -92,7 +92,7 @@ do_test (size_t align, size_t len, int max_char)
     printf ("Length %4zd, alignment %2zd:", len, align);
 
   FOR_EACH_IMPL (impl, 0)
-    do_one_test (impl, buf1 + align, len);
+    do_one_test (impl, (char *) (buf1 + align), len);
 
   if (HP_TIMING_AVAIL)
     putchar ('\n');
@@ -127,10 +127,11 @@ do_random_tests (void)
 	}
 
       FOR_EACH_IMPL (impl, 1)
-	if (CALL (impl, p + align) != len)
+	if (CALL (impl, (char *) (p + align)) != len)
 	  {
 	    error (0, 0, "Iteration %zd - wrong result in function %s (%zd) %zd != %zd, p %p",
-		   n, impl->name, align, CALL (impl, p + align), len, p);
+		   n, impl->name, align, CALL (impl, (char *) (p + align)),
+		   len, p);
 	    ret = 1;
 	  }
     }
diff --git a/string/test-strncpy.c b/string/test-strncpy.c
index 62b83166a3..d7a714cef1 100644
--- a/string/test-strncpy.c
+++ b/string/test-strncpy.c
@@ -1,5 +1,5 @@
 /* Test and measure strncpy functions.
-   Copyright (C) 1999, 2002, 2003 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2003, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Written by Jakub Jelinek <jakub@redhat.com>, 1999.
 
@@ -124,8 +124,8 @@ do_test (size_t align1, size_t align2, size_t len, size_t n, int max_char)
   if (align2 + len >= page_size)
     return;
 
-  s1 = buf1 + align1;
-  s2 = buf2 + align2;
+  s1 = (char *) (buf1 + align1);
+  s2 = (char *) (buf2 + align2);
 
   for (i = 0; i < len; ++i)
     s1[i] = 32 + 23 * i % (max_char - 32);
@@ -215,7 +215,9 @@ do_random_tests (void)
       FOR_EACH_IMPL (impl, 1)
 	{
 	  memset (p2 - 64, '\1', 512 + 64);
-	  res = CALL (impl, p2 + align2, p1 + align1, size);
+	  res = (unsigned char *) CALL (impl,
+					(char *) (p2 + align2),
+					(char *) (p1 + align1), size);
 	  if (res != STRNCPY_RESULT (p2 + align2, len, size))
 	    {
 	      error (0, 0, "Iteration %zd - wrong result in function %s (%zd, %zd, %zd) %p != %p",
diff --git a/string/test-strpbrk.c b/string/test-strpbrk.c
index 2ec52fd286..f3ed2080bc 100644
--- a/string/test-strpbrk.c
+++ b/string/test-strpbrk.c
@@ -1,5 +1,5 @@
 /* Test and measure strpbrk functions.
-   Copyright (C) 1999, 2002, 2003 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2003, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Written by Jakub Jelinek <jakub@redhat.com>, 1999.
 
@@ -102,8 +102,8 @@ do_test (size_t align, size_t pos, size_t len)
   if (align + pos + 10 >= page_size || len > 240)
     return;
 
-  rej = buf2 + (random () & 255);
-  s = buf1 + align;
+  rej = (char *) (buf2 + (random () & 255));
+  s = (char *) (buf1 + align);
 
   for (i = 0; i < len; ++i)
     {
@@ -182,7 +182,7 @@ do_random_tests (void)
 	}
       rej[i] = '\0';
       for (c = 1; c <= 255; ++c)
-	if (strchr (rej, c) == NULL)
+	if (strchr ((char *) rej, c) == NULL)
 	  break;
       j = (pos > len ? pos : len) + align + 64;
       if (j > 512)
@@ -199,23 +199,24 @@ do_random_tests (void)
 	  else
 	    {
 	      p[i] = random () & 255;
-	      if (strchr (rej, p[i]))
+	      if (strchr ((char *) rej, p[i]))
 		{
 		  p[i] = random () & 255;
-		  if (strchr (rej, p[i]))
+		  if (strchr ((char *) rej, p[i]))
 		    p[i] = c;
 		}
 	    }
 	}
 
-      result = STRPBRK_RESULT (p + align, pos < len ? pos : len);
+      result = STRPBRK_RESULT ((char *) (p + align), pos < len ? pos : len);
 
       FOR_EACH_IMPL (impl, 1)
-	if (CALL (impl, p + align, rej) != result)
+	if (CALL (impl, (char *) (p + align), (char *) rej) != result)
 	  {
 	    error (0, 0, "Iteration %zd - wrong result in function %s (%zd, %p, %zd, %zd, %zd) %p != %p",
 		   n, impl->name, align, rej, rlen, pos, len,
-		   (void *) CALL (impl, p + align, rej), (void *) result);
+		   (void *) CALL (impl, (char *) (p + align), (char *) rej),
+		   (void *) result);
 	    ret = 1;
 	  }
     }
diff --git a/string/test-strrchr.c b/string/test-strrchr.c
index 5aff75aeba..92e8ab1bb1 100644
--- a/string/test-strrchr.c
+++ b/string/test-strrchr.c
@@ -1,5 +1,5 @@
 /* Test and measure strrchr functions.
-   Copyright (C) 1999, 2002, 2003 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2002, 2003, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Written by Jakub Jelinek <jakub@redhat.com>, 1999.
 
@@ -95,10 +95,10 @@ do_test (size_t align, size_t pos, size_t len, int seek_char, int max_char)
   if (pos < len)
     {
       buf1[align + pos] = seek_char;
-      result = buf1 + align + pos;
+      result = (char *) (buf1 + align + pos);
     }
   else if (seek_char == 0)
-    result = buf1 + align + len;
+    result = (char *) (buf1 + align + len);
   else
     result = NULL;
 
@@ -106,7 +106,7 @@ do_test (size_t align, size_t pos, size_t len, int seek_char, int max_char)
     printf ("Length %4zd, alignment %2zd:", pos, align);
 
   FOR_EACH_IMPL (impl, 0)
-    do_one_test (impl, buf1 + align, seek_char, result);
+    do_one_test (impl, (char *) (buf1 + align), seek_char, result);
 
   if (HP_TIMING_AVAIL)
     putchar ('\n');
@@ -165,18 +165,18 @@ do_random_tests (void)
 	}
 
       if (pos <= len)
-	result = p + pos + align;
+	result = (char *) (p + pos + align);
       else if (seek_char == 0)
-        result = p + len + align;
+        result = (char *) (p + len + align);
       else
 	result = NULL;
 
       FOR_EACH_IMPL (impl, 1)
-	if (CALL (impl, p + align, seek_char) != result)
+	if (CALL (impl, (char *) (p + align), seek_char) != result)
 	  {
 	    error (0, 0, "Iteration %zd - wrong result in function %s (%zd, %d, %zd, %zd) %p != %p, p %p",
 		   n, impl->name, align, seek_char, len, pos,
-		   CALL (impl, p + align, seek_char), result, p);
+		   CALL (impl, (char *) (p + align), seek_char), result, p);
 	    ret = 1;
 	  }
     }
diff --git a/string/test-strspn.c b/string/test-strspn.c
index de7351fe8c..15cf4923f0 100644
--- a/string/test-strspn.c
+++ b/string/test-strspn.c
@@ -1,5 +1,5 @@
 /* Test and measure strspn functions.
-   Copyright (C) 1999, 2002, 2003 Free Software Foundation, Inc.
+   Copyright (C) 1999,2002,2003,2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Written by Jakub Jelinek <jakub@redhat.com>, 1999.
 
@@ -104,8 +104,8 @@ do_test (size_t align, size_t pos, size_t len)
   if (align + pos + 10 >= page_size || len > 240 || ! len)
     return;
 
-  acc = buf2 + (random () & 255);
-  s = buf1 + align;
+  acc = (char *) (buf2 + (random () & 255));
+  s = (char *) (buf1 + align);
 
   for (i = 0; i < len; ++i)
     {
@@ -183,7 +183,7 @@ do_random_tests (void)
 	  else if (i == pos + align)
 	    {
 	      p[i] = random () & 255;
-	      if (strchr (acc, p[i]))
+	      if (strchr ((char *) acc, p[i]))
 		p[i] = '\0';
 	    }
 	  else if (i < align || i > pos + align)
@@ -193,11 +193,13 @@ do_random_tests (void)
 	}
 
       FOR_EACH_IMPL (impl, 1)
-	if (CALL (impl, p + align, acc) != (pos < len ? pos : len))
+	if (CALL (impl, (char *) (p + align),
+		  (char *) acc) != (pos < len ? pos : len))
 	  {
 	    error (0, 0, "Iteration %zd - wrong result in function %s (%zd, %p, %zd, %zd, %zd) %zd != %zd",
 		   n, impl->name, align, acc, alen, pos, len,
-		   CALL (impl, p + align, acc), (pos < len ? pos : len));
+		   CALL (impl, (char *) (p + align), (char *) acc),
+		   (pos < len ? pos : len));
 	    ret = 1;
 	  }
     }
diff --git a/wcsmbs/tst-mbsrtowcs.c b/wcsmbs/tst-mbsrtowcs.c
index eb6c8e21b1..cca5a80a39 100644
--- a/wcsmbs/tst-mbsrtowcs.c
+++ b/wcsmbs/tst-mbsrtowcs.c
@@ -1,5 +1,5 @@
 /* Test NUL handling of mbsrtowcs.
-   Copyright (C) 2004 Free Software Foundation, Inc.
+   Copyright (C) 2004, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@redhat.com>, 2004.
 
@@ -32,7 +32,7 @@ main (void)
   mbstate_t state;
   memset (&state, '\0', sizeof (state));
 
-  const char *in = buf;
+  const char *in = (const char *) buf;
   size_t n = mbsrtowcs (out, &in, sizeof (out) / sizeof (wchar_t), &state);
 
   int result = 0;