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/stdlib/strtold.c | 6 +++--- src/stdlib/strtoumax.c | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'src/stdlib') diff --git a/src/stdlib/strtold.c b/src/stdlib/strtold.c index 54f80469..73f2b082 100644 --- a/src/stdlib/strtold.c +++ b/src/stdlib/strtold.c @@ -4,7 +4,7 @@ long double strtold(const char *s1, char **p) { - const unsigned char *s = s1; + const unsigned char *s = (void *)s1; long double x = 0; long double frac; int sign = 0; @@ -53,7 +53,7 @@ long double strtold(const char *s1, char **p) } } if ((*s|32) == 'p') { - e = strtol(s+1, (void *)&s, 10); + e = strtol((void *)(s+1), (void *)&s, 10); for (; e>0; e--) x *= 2.0; for (; e<0; e++) x *= 0.5; } @@ -82,7 +82,7 @@ long double strtold(const char *s1, char **p) } } if ((*s|32)=='e') { - e = strtol(++s, (void *)&s, 10); + e = strtol((void *)++s, (void *)&s, 10); for (; e>0; e--) x *= 10.0; for (; e<0; e++) x /= 10.0; } diff --git a/src/stdlib/strtoumax.c b/src/stdlib/strtoumax.c index a529f6e8..f1902476 100644 --- a/src/stdlib/strtoumax.c +++ b/src/stdlib/strtoumax.c @@ -26,7 +26,7 @@ static const unsigned char digits[] = { uintmax_t strtoumax(const char *s1, char **p, int base) { - const unsigned char *s = s1; + const unsigned char *s = (void *)s1; size_t x1, z1; uintmax_t x, z=0; int sign = 0; -- cgit v1.2.1