From 9ae8d5fc71a4b61ec826d58f03f7b543755fb1d4 Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Fri, 25 Mar 2011 16:34:03 -0400 Subject: fix all implicit conversion between signed/unsigned pointers sadly the C language does not specify any such implicit conversion, so this is not a matter of just fixing warnings (as gcc treats it) but actual errors. i would like to revisit a number of these changes and possibly revise the types used to reduce the number of casts required. --- src/stdio/fputwc.c | 4 ++-- src/stdio/ungetwc.c | 2 +- src/stdio/vdprintf.c | 2 +- src/stdio/vfprintf.c | 2 +- src/stdio/vsnprintf.c | 4 ++-- src/stdio/vswprintf.c | 2 +- 6 files changed, 8 insertions(+), 8 deletions(-) (limited to 'src/stdio') diff --git a/src/stdio/fputwc.c b/src/stdio/fputwc.c index b48bb74d..ec49b5c6 100644 --- a/src/stdio/fputwc.c +++ b/src/stdio/fputwc.c @@ -11,12 +11,12 @@ wint_t __fputwc_unlocked(wchar_t c, FILE *f) if (c != f->lbf && f->wpos + 1 < f->wend) *f->wpos++ = c; else c = __overflow(f, c); } else if (f->wpos + MB_LEN_MAX < f->wend) { - l = wctomb(f->wpos, c); + l = wctomb((void *)f->wpos, c); if (l < 0) c = WEOF; else f->wpos += l; } else { l = wctomb(mbc, c); - if (l < 0 || __fwritex(mbc, l, f) < l) c = WEOF; + if (l < 0 || __fwritex((void *)mbc, l, f) < l) c = WEOF; } return c; } diff --git a/src/stdio/ungetwc.c b/src/stdio/ungetwc.c index f7cde2e0..6871d034 100644 --- a/src/stdio/ungetwc.c +++ b/src/stdio/ungetwc.c @@ -8,7 +8,7 @@ wint_t ungetwc(wint_t c, FILE *f) if (c == WEOF) return c; /* Try conversion early so we can fail without locking if invalid */ - if (!isascii(c) && (l = wctomb(mbc, c)) < 0) + if (!isascii(c) && (l = wctomb((void *)mbc, c)) < 0) return WEOF; FLOCK(f); diff --git a/src/stdio/vdprintf.c b/src/stdio/vdprintf.c index 35ed6e0b..68562e05 100644 --- a/src/stdio/vdprintf.c +++ b/src/stdio/vdprintf.c @@ -8,7 +8,7 @@ static size_t wrap_write(FILE *f, const unsigned char *buf, size_t len) int vdprintf(int fd, const char *fmt, va_list ap) { int r; - char buf[BUFSIZ]; + unsigned char buf[BUFSIZ]; FILE f = { .fd = fd, .lbf = EOF, .write = wrap_write, .buf = buf+UNGET, .buf_size = sizeof buf - UNGET diff --git a/src/stdio/vfprintf.c b/src/stdio/vfprintf.c index 19afd6c9..b6bb3bcf 100644 --- a/src/stdio/vfprintf.c +++ b/src/stdio/vfprintf.c @@ -149,7 +149,7 @@ static void pop_arg(union arg *arg, int type, va_list *ap) static void out(FILE *f, const char *s, size_t l) { - __fwritex(s, l, f); + __fwritex((void *)s, l, f); } static void pad(FILE *f, char c, int w, int l, int fl) diff --git a/src/stdio/vsnprintf.c b/src/stdio/vsnprintf.c index 5d3f0c5f..1f316ca4 100644 --- a/src/stdio/vsnprintf.c +++ b/src/stdio/vsnprintf.c @@ -23,8 +23,8 @@ int vsnprintf(char *s, size_t n, const char *fmt, va_list ap) return -1; } else if (n > 0) { if (n > (char *)0+SIZE_MAX-s) n = (char *)0+SIZE_MAX-s; - f.wpos = s; - f.wbase = f.wend = s+n-1; + f.wpos = (void *)s; + f.wbase = f.wend = (void *)(s+n-1); f.wstop = f.wend - 1; } r = vfprintf(&f, fmt, ap); diff --git a/src/stdio/vswprintf.c b/src/stdio/vswprintf.c index 31ea1875..2d9f2002 100644 --- a/src/stdio/vswprintf.c +++ b/src/stdio/vswprintf.c @@ -10,7 +10,7 @@ static size_t sw_write(FILE *f, const unsigned char *s, size_t l) size_t l0 = l; int i = 0; struct cookie *c = f->cookie; - while (c->l && l && (i=mbtowc(c->ws, s, l))>=0) { + while (c->l && l && (i=mbtowc(c->ws, (void *)s, l))>=0) { s+=i; l-=i; c->l--; -- cgit v1.2.1