commit 6b1309ac40e3f1842f42b5fbd995b40dbf8e3932
parent f22374d59ae47eaf74ad42b55b576a442c608517
Author: Roberto E. Vargas Caballero <k0ga@shike2.com>
Date: Thu, 30 Jun 2022 14:22:29 +0200
libc: Fix all the constness problems
The const warnings were ignored based in wrong assumptions about how
the C standard specifies the type qualifier behaviour related to
pointers.
Diffstat:
17 files changed, 25 insertions(+), 25 deletions(-)
diff --git a/include/bits/darwin/sys.h b/include/bits/darwin/sys.h
@@ -23,7 +23,7 @@ typedef int pid_t;
struct sigaction;
struct rusage;
-extern int _execve(char *, char *[], char *[]);
+extern int _execve(const char *, const char *[], const char *[]);
extern int _fork(void);
extern pid_t _getpid(void);
extern int _kill(pid_t, int);
diff --git a/include/bits/dragonfly/sys.h b/include/bits/dragonfly/sys.h
@@ -23,7 +23,7 @@ typedef int pid_t;
struct sigaction;
struct rusage;
-extern int _execve(char *, char *[], char *[]);
+extern int _execve(const char *, const char *[], const char *[]);
extern int _fork(void);
extern pid_t _getpid(void);
extern int _kill(pid_t, int);
diff --git a/include/bits/linux/sys.h b/include/bits/linux/sys.h
@@ -23,7 +23,7 @@ typedef int pid_t;
struct sigaction;
struct rusage;
-extern int _execve(char *, char *[], char *[]);
+extern int _execve(const char *, const char *[], const char *[]);
extern int _fork(void);
extern pid_t _getpid(void);
extern int _kill(pid_t, int);
diff --git a/include/bits/netbsd/sys.h b/include/bits/netbsd/sys.h
@@ -23,7 +23,7 @@ typedef int pid_t;
struct sigaction;
struct rusage;
-extern int _execve(char *, char *[], char *[]);
+extern int _execve(const char *, const char *[], const char *[]);
extern int _fork(void);
extern pid_t _getpid(void);
extern int _kill(pid_t, int);
diff --git a/include/bits/openbsd/sys.h b/include/bits/openbsd/sys.h
@@ -23,7 +23,7 @@ typedef int pid_t;
struct sigaction;
struct rusage;
-extern int _execve(char *, char *[], char *[]);
+extern int _execve(const char *, const char *[], const char *[]);
extern int _fork(void);
extern pid_t _getpid(void);
extern int _kill(pid_t, int);
diff --git a/src/libc/arch/posix/getenv.c b/src/libc/arch/posix/getenv.c
@@ -3,17 +3,17 @@
#undef getenv
-extern char **_environ;
+extern const char **_environ;
char *
getenv(const char *name)
{
- char **p, *s;
+ const char **p, *s;
size_t len = strlen(name);
for (p = _environ; s = *p; ++p) {
if (!strncmp(name, s, len) && s[len] == '=')
- return s + len + 1;
+ return (char *) s + len + 1;
}
return NULL;
}
diff --git a/src/libc/arch/posix/system.c b/src/libc/arch/posix/system.c
@@ -9,7 +9,7 @@
#undef system
-extern char **_environ;
+extern const char **_environ;
int
system(const char *cmd)
@@ -24,7 +24,7 @@ system(const char *cmd)
case -1:
return -1;
case 0:
- _execve(SHELL, (char*[]) {"sh", "-c", cmd, NULL}, _environ);
+ _execve(SHELL, (const char*[]) {"sh", "-c", cmd, NULL}, _environ);
_exit(127);
default:
while (_waitpid(pid, &st, 0) < 0 && errno == EINTR)
diff --git a/src/libc/stdlib/bsearch.c b/src/libc/stdlib/bsearch.c
@@ -7,7 +7,7 @@ bsearch(const void *key, const void *ary, size_t n, size_t size,
{
int t;
size_t mid, low, high;
- char *cur, *base = ary;
+ char *cur, *base = (char *) ary;
low = 0;
high = n - 1;
diff --git a/src/libc/stdlib/strtol.c b/src/libc/stdlib/strtol.c
@@ -9,11 +9,11 @@
#undef strtol
long
-strtol(const char * restrict s, char ** restrict end, int base)
+strtol(const char * restrict ptr, char ** restrict end, int base)
{
int d, sign = -1;
long n;
- const char *t;
+ char *t, *s = (char *) ptr;
if (end)
*end = s;
diff --git a/src/libc/stdlib/strtoll.c b/src/libc/stdlib/strtoll.c
@@ -9,11 +9,11 @@
#undef strtoll
long long
-strtoll(const char * restrict s, char ** restrict end, int base)
+strtoll(const char * restrict ptr, char ** restrict end, int base)
{
int d, sign = -1;
long long n;
- const char *t;
+ char *t, *s = (char *) ptr;
if (end)
*end = s;
diff --git a/src/libc/stdlib/strtoul.c b/src/libc/stdlib/strtoul.c
@@ -9,11 +9,11 @@
#undef strtoul
unsigned long
-strtoul(const char * restrict s, char ** restrict end, int base)
+strtoul(const char * restrict ptr, char ** restrict end, int base)
{
int d, sign = 1;
unsigned long n;
- const char *t;
+ char *t, *s = (char *) ptr;
if (end)
*end = s;
diff --git a/src/libc/stdlib/strtoull.c b/src/libc/stdlib/strtoull.c
@@ -9,11 +9,11 @@
#undef strtoull
unsigned long long
-strtoull(const char * restrict s, char ** restrict end, int base)
+strtoull(const char * restrict ptr, char ** restrict end, int base)
{
int d, sign = 1;
unsigned long long n;
- const char *t;
+ char *t, *s = (char *) ptr;
if (end)
*end = s;
diff --git a/src/libc/string/memchr.c b/src/libc/string/memchr.c
@@ -5,7 +5,7 @@
void *
memchr(const void *s, int c, size_t n)
{
- const unsigned char *bp = s;
+ unsigned char *bp = (unsigned char *) s;
while (n > 0 && *bp++ != c)
--n;
diff --git a/src/libc/string/strchr.c b/src/libc/string/strchr.c
@@ -8,5 +8,5 @@ strchr(const char *s, int c)
while (*s && *s != c)
++s;
- return (*s == c) ? s : NULL;
+ return (*s == c) ? (char *) s : NULL;
}
diff --git a/src/libc/string/strpbrk.c b/src/libc/string/strpbrk.c
@@ -16,5 +16,5 @@ strpbrk(const char *s1, const char *s2)
while ((ch = *s) != 0 && !map[ch])
s++;
- return (ch == '\0') ? NULL : s;
+ return (ch == '\0') ? NULL : (char *) s;
}
diff --git a/src/libc/string/strrchr.c b/src/libc/string/strrchr.c
@@ -12,5 +12,5 @@ strrchr(const char *s, int c)
while (t > s && *t != c)
--t;
- return (*t == c) ? t : NULL;
+ return (*t == c) ? (char *) t : NULL;
}
diff --git a/src/libc/string/strstr.c b/src/libc/string/strstr.c
@@ -11,11 +11,11 @@ strstr(const char *s1, const char *s2)
int len;
if ((len = strlen(s2)) == 0)
- return s1;
+ return (char *) s1;
for (p = s1; p = strchr(p, c); ++p) {
if (!strncmp(p, s2, len))
- return p;
+ return (char *) p;
}
return NULL;