From d4bc9052beb3305d64a353a16641740380eb87af Mon Sep 17 00:00:00 2001 From: Ori Bernstein Date: Fri, 21 Jun 2019 10:00:58 -0700 Subject: Turn on warnings when building libap. For ape, we never enabled warnings in cflags. Turning it on brings up a lot of warnings. Most are noise, but a few caught unused variables and trunctaions of pointers. to smaller integers (int, long). A few warnings remain. --- sys/src/ape/config | 2 +- sys/src/ape/lib/ap/amd64/mkfile | 2 +- sys/src/ape/lib/ap/gen/getenv.c | 2 +- sys/src/ape/lib/ap/gen/memchr.c | 2 +- sys/src/ape/lib/ap/gen/memcmp.c | 4 +- sys/src/ape/lib/ap/gen/memmove.c | 2 +- sys/src/ape/lib/ap/gen/mkfile | 2 +- sys/src/ape/lib/ap/gen/putenv.c | 6 +- sys/src/ape/lib/ap/gen/rand.c | 2 - sys/src/ape/lib/ap/gen/strcspn.c | 2 +- sys/src/ape/lib/ap/gen/strpbrk.c | 2 +- sys/src/ape/lib/ap/gen/strrchr.c | 2 +- sys/src/ape/lib/ap/gen/strspn.c | 2 +- sys/src/ape/lib/ap/gen/strstr.c | 8 +-- sys/src/ape/lib/ap/math/mkfile | 2 +- sys/src/ape/lib/ap/plan9/_buf.c | 10 ++-- sys/src/ape/lib/ap/plan9/_envsetup.c | 2 + sys/src/ape/lib/ap/plan9/_getpw.c | 4 +- sys/src/ape/lib/ap/plan9/brk.c | 3 +- sys/src/ape/lib/ap/plan9/cfgetospeed.c | 8 +-- sys/src/ape/lib/ap/plan9/execle.c | 2 +- sys/src/ape/lib/ap/plan9/execve.c | 2 +- sys/src/ape/lib/ap/plan9/fsync.c | 2 +- sys/src/ape/lib/ap/plan9/getgrnam.c | 2 +- sys/src/ape/lib/ap/plan9/getgroups.c | 2 +- sys/src/ape/lib/ap/plan9/getpwnam.c | 2 +- sys/src/ape/lib/ap/plan9/link.c | 2 +- sys/src/ape/lib/ap/plan9/mkfile | 2 +- sys/src/ape/lib/ap/plan9/opendir.c | 2 +- sys/src/ape/lib/ap/plan9/pause.c | 2 +- sys/src/ape/lib/ap/plan9/read.c | 2 +- sys/src/ape/lib/ap/plan9/rename.c | 52 ++++++++--------- sys/src/ape/lib/ap/plan9/setgid.c | 2 +- sys/src/ape/lib/ap/plan9/setuid.c | 2 +- sys/src/ape/lib/ap/plan9/signal.c | 2 +- sys/src/ape/lib/ap/plan9/sigsuspend.c | 2 +- sys/src/ape/lib/ap/plan9/tcgetattr.c | 2 +- sys/src/ape/lib/ap/plan9/umask.c | 2 +- sys/src/ape/lib/ap/plan9/unlink.c | 1 + sys/src/ape/lib/ap/posix/getpwent.c | 2 +- sys/src/ape/lib/ap/posix/mkfifo.c | 2 +- sys/src/ape/lib/ap/posix/mkfile | 2 +- sys/src/ape/lib/ap/posix/pathconf.c | 6 +- sys/src/ape/lib/ap/posix/tzset.c | 1 + sys/src/ape/lib/ap/stdio/_fconv.c | 4 +- sys/src/ape/lib/ap/stdio/ftoa.c | 2 +- sys/src/ape/lib/ap/stdio/mkfile | 2 +- sys/src/ape/lib/ap/stdio/vfprintf.c | 13 ++--- sys/src/ape/lib/ap/stdio/vfscanf.c | 104 +++++++++++++++++++++++---------- 49 files changed, 168 insertions(+), 126 deletions(-) diff --git a/sys/src/ape/config b/sys/src/ape/config index ee135fc74..0a370d997 100644 --- a/sys/src/ape/config +++ b/sys/src/ape/config @@ -5,7 +5,7 @@ APEBIN=/$objtype/bin/ape # where installed ape binaries go APELIB=/rc/bin/ape # where helper programs go CC=pcc # compiler (must be ansi) LD=pcc # loader -CFLAGS= # global defaults +CFLAGS=-Fw # global defaults FAMILY=plan9 AR=ar # manipulating libraries RANLIB=echo # for updating libraries diff --git a/sys/src/ape/lib/ap/amd64/mkfile b/sys/src/ape/lib/ap/amd64/mkfile index 5bb7f3271..8f1d89824 100644 --- a/sys/src/ape/lib/ap/amd64/mkfile +++ b/sys/src/ape/lib/ap/amd64/mkfile @@ -16,5 +16,5 @@ OFILES=\ 0) { if(*sp++ == c) diff --git a/sys/src/ape/lib/ap/gen/memcmp.c b/sys/src/ape/lib/ap/gen/memcmp.c index c07fbd0e9..e94ed8052 100644 --- a/sys/src/ape/lib/ap/gen/memcmp.c +++ b/sys/src/ape/lib/ap/gen/memcmp.c @@ -6,8 +6,8 @@ memcmp(const void *a1, const void *a2, size_t n) char *s1, *s2; unsigned c1, c2; - s1 = a1; - s2 = a2; + s1 = (char*)a1; + s2 = (char*)a2; while(n > 0) { c1 = *s1++; c2 = *s2++; diff --git a/sys/src/ape/lib/ap/gen/memmove.c b/sys/src/ape/lib/ap/gen/memmove.c index 7eec93f68..1dacece35 100644 --- a/sys/src/ape/lib/ap/gen/memmove.c +++ b/sys/src/ape/lib/ap/gen/memmove.c @@ -11,7 +11,7 @@ memmove(void *a1, const void *a2, size_t n) if(a1 > a2) goto back; s1 = a1; - s2 = a2; + s2 = (char*)a2; while(n > 0) { *s1++ = *s2++; n--; diff --git a/sys/src/ape/lib/ap/gen/mkfile b/sys/src/ape/lib/ap/gen/mkfile index 54ff7a617..65b62ab13 100644 --- a/sys/src/ape/lib/ap/gen/mkfile +++ b/sys/src/ape/lib/ap/gen/mkfile @@ -63,4 +63,4 @@ OFILES= `{rc ./reduce $O $objtype $ALLOFILES} fd != fd) @@ -395,7 +397,7 @@ select(int nfds, fd_set *rfds, fd_set *wfds, fd_set *efds, struct timeval *timeo } mux->selwait = 1; unlock(&mux->lock); - fd = (int)_RENDEZVOUS(&mux->selwait, 0); + fd = (int)(uintptr_t)_RENDEZVOUS(&mux->selwait, 0); if(fd >= 0 && fd < nfds) { b = _fdinfo[fd].buf; if(b == 0 || b->fd != fd) { @@ -504,7 +506,7 @@ _detachbuf(void) } static int -copynotehandler(void *u, char *msg) +copynotehandler(void *, char *) { if(_finishing) _finish(0, 0); diff --git a/sys/src/ape/lib/ap/plan9/_envsetup.c b/sys/src/ape/lib/ap/plan9/_envsetup.c index 6d76da87e..58ed05342 100644 --- a/sys/src/ape/lib/ap/plan9/_envsetup.c +++ b/sys/src/ape/lib/ap/plan9/_envsetup.c @@ -40,6 +40,8 @@ _envsetup(void) char **pp; Dir *d9, *d9a; + ps = 0; + psize = 0; nohandle = 0; fdinited = 0; cnt = 0; diff --git a/sys/src/ape/lib/ap/plan9/_getpw.c b/sys/src/ape/lib/ap/plan9/_getpw.c index 2c6a740a7..c75f1dbfe 100644 --- a/sys/src/ape/lib/ap/plan9/_getpw.c +++ b/sys/src/ape/lib/ap/plan9/_getpw.c @@ -59,6 +59,7 @@ _getpw(int *pnum, char **pname, char **plist) return 0; au[n] = 0; } + mem = nil; matchnum = (*pname == NULL); matched = 0; /* try using memo */ @@ -68,9 +69,8 @@ _getpw(int *pnum, char **pname, char **plist) matched = (mem->num == *pnum); else matched = (strcmp(mem->name, *pname) == 0); - if(matched) { + if(matched) break; - } } if(!matched) for(f1 = au, eline = au; !matched && *eline; f1 = eline+1){ diff --git a/sys/src/ape/lib/ap/plan9/brk.c b/sys/src/ape/lib/ap/plan9/brk.c index 0b3240377..b99fddbbc 100644 --- a/sys/src/ape/lib/ap/plan9/brk.c +++ b/sys/src/ape/lib/ap/plan9/brk.c @@ -1,5 +1,6 @@ #include "lib.h" #include +#include #include "sys9.h" char end[]; @@ -11,7 +12,7 @@ brk(char *p) { unsigned long n; - n = (unsigned long)p; + n = (uintptr_t)p; n += 3; n &= ~3; if(_BRK_((void*)n) < 0){ diff --git a/sys/src/ape/lib/ap/plan9/cfgetospeed.c b/sys/src/ape/lib/ap/plan9/cfgetospeed.c index cc89f4a86..bfb9f42a2 100644 --- a/sys/src/ape/lib/ap/plan9/cfgetospeed.c +++ b/sys/src/ape/lib/ap/plan9/cfgetospeed.c @@ -1,25 +1,25 @@ #include speed_t -cfgetospeed(const struct termios *p) +cfgetospeed(const struct termios *) { return B0; } int -cfsetospeed(struct termios *p, speed_t s) +cfsetospeed(struct termios *, speed_t) { return 0; } speed_t -cfgetispeed(const struct termios *p) +cfgetispeed(const struct termios *) { return B0; } int -cfsetispeed(struct termios *p, speed_t s) +cfsetispeed(struct termios *, speed_t) { return 0; } diff --git a/sys/src/ape/lib/ap/plan9/execle.c b/sys/src/ape/lib/ap/plan9/execle.c index f607c4914..b01fe3be2 100644 --- a/sys/src/ape/lib/ap/plan9/execle.c +++ b/sys/src/ape/lib/ap/plan9/execle.c @@ -1,7 +1,7 @@ #include int -execle(const char *name, const char *arg0, const char *aore, ...) +execle(const char *name, const char *arg0, const char *, ...) { char *p; diff --git a/sys/src/ape/lib/ap/plan9/execve.c b/sys/src/ape/lib/ap/plan9/execve.c index e11ca1c21..1761f3183 100644 --- a/sys/src/ape/lib/ap/plan9/execve.c +++ b/sys/src/ape/lib/ap/plan9/execve.c @@ -85,7 +85,7 @@ execve(const char *name, const char *argv[], const char *envp[]) _CLOSE(f); } if(envp){ - for(e = envp; (ss = *e); e++) { + for(e = (char**)envp; (ss = *e); e++) { se = strchr(ss, '='); if(!se || ss==se) continue; /* what is name? value? */ diff --git a/sys/src/ape/lib/ap/plan9/fsync.c b/sys/src/ape/lib/ap/plan9/fsync.c index f37d35c04..b3d0f78ae 100644 --- a/sys/src/ape/lib/ap/plan9/fsync.c +++ b/sys/src/ape/lib/ap/plan9/fsync.c @@ -3,7 +3,7 @@ #include int -fsync(int fd) +fsync(int) { errno = EINVAL; return -1; diff --git a/sys/src/ape/lib/ap/plan9/getgrnam.c b/sys/src/ape/lib/ap/plan9/getgrnam.c index de2a7d33d..f4bd6b3b2 100644 --- a/sys/src/ape/lib/ap/plan9/getgrnam.c +++ b/sys/src/ape/lib/ap/plan9/getgrnam.c @@ -13,7 +13,7 @@ getgrnam(const char *name) char *nam, *mem; num = 0; - nam = name; + nam = (char *)name; mem = 0; if(_getpw(&num, &nam, &mem)){ holdgroup.gr_name = nam; diff --git a/sys/src/ape/lib/ap/plan9/getgroups.c b/sys/src/ape/lib/ap/plan9/getgroups.c index e226a65b4..c26caaeb3 100644 --- a/sys/src/ape/lib/ap/plan9/getgroups.c +++ b/sys/src/ape/lib/ap/plan9/getgroups.c @@ -3,7 +3,7 @@ #include int -getgroups(int gidsize, gid_t grouplist[]) +getgroups(int, gid_t*) { errno = EINVAL; return -1; diff --git a/sys/src/ape/lib/ap/plan9/getpwnam.c b/sys/src/ape/lib/ap/plan9/getpwnam.c index 9cb18294f..e54b86c95 100644 --- a/sys/src/ape/lib/ap/plan9/getpwnam.c +++ b/sys/src/ape/lib/ap/plan9/getpwnam.c @@ -14,7 +14,7 @@ getpwnam(const char *name) char *nam, *mem; num = 0; - nam = name; + nam = (char*)name; mem = 0; if(_getpw(&num, &nam, &mem)){ holdpw.pw_name = nam; diff --git a/sys/src/ape/lib/ap/plan9/link.c b/sys/src/ape/lib/ap/plan9/link.c index 9bf3755fb..293cb60c1 100644 --- a/sys/src/ape/lib/ap/plan9/link.c +++ b/sys/src/ape/lib/ap/plan9/link.c @@ -5,7 +5,7 @@ * BUG: LINK_MAX==1 isn't really allowed */ int -link(const char *name1, const char *name2) +link(const char *, const char *) { errno = EMLINK; return -1; diff --git a/sys/src/ape/lib/ap/plan9/mkfile b/sys/src/ape/lib/ap/plan9/mkfile index 8f9099e22..1ddb3f4f8 100644 --- a/sys/src/ape/lib/ap/plan9/mkfile +++ b/sys/src/ape/lib/ap/plan9/mkfile @@ -107,6 +107,6 @@ UPDATE=\ =OPEN_MAX || !((f = &_fdinfo[d])->flags&FD_ISOPEN)){ + if(d<0 || d>=OPEN_MAX || !(_fdinfo[d].flags & FD_ISOPEN)){ errno = EBADF; return -1; } diff --git a/sys/src/ape/lib/ap/plan9/rename.c b/sys/src/ape/lib/ap/plan9/rename.c index 182f49ce2..c02948316 100644 --- a/sys/src/ape/lib/ap/plan9/rename.c +++ b/sys/src/ape/lib/ap/plan9/rename.c @@ -10,7 +10,7 @@ int rename(const char *from, const char *to) { - int n, i; + int n, ffd, tfd; char *f, *t; Dir *d, nd; @@ -31,45 +31,45 @@ rename(const char *from, const char *to) } f = strrchr(from, '/'); t = strrchr(to, '/'); - f = f? f+1 : from; - t = t? t+1 : to; - n = 0; + f = f? f+1 : (char*)from; + t = t? t+1 : (char*)to; if(f-from==t-to && strncmp(from, to, f-from)==0){ /* from and to are in same directory (we miss some cases) */ - i = strlen(t); _nulldir(&nd); nd.name = t; if(_dirwstat(from, &nd) < 0){ _syserrno(); - n = -1; + return -1; } }else{ /* different directories: have to copy */ - int ffd, tfd; char buf[8192]; - if((ffd = _OPEN(from, OREAD)) < 0 || - (tfd = _CREATE(to, OWRITE, d->mode)) < 0){ - _CLOSE(ffd); - _syserrno(); - n = -1; + + if((ffd = _OPEN(from, OREAD)) == -1) + goto err1; + if((tfd = _CREATE(to, OWRITE, d->mode)) == -1) + goto err2; + n = 0; + while(n>=0){ + if((n = _READ(ffd, buf, sizeof(buf))) == -1) + goto err2; + if(_WRITE(tfd, buf, n) != n) + goto err2; } - while(n>=0 && (n = _READ(ffd, buf, sizeof(buf))) > 0) - if(_WRITE(tfd, buf, n) != n){ - _syserrno(); - n = -1; - } _CLOSE(ffd); _CLOSE(tfd); - if(n>0) - n = 0; - if(n == 0) { - if(_REMOVE(from) < 0){ - _syserrno(); - return -1; - } - } + if(_REMOVE(from) < 0) + goto err2; } free(d); - return n; + return 0; + +err2: + _CLOSE(tfd); +err1: + _CLOSE(ffd); + _syserrno(); + free(d); + return -1; } diff --git a/sys/src/ape/lib/ap/plan9/setgid.c b/sys/src/ape/lib/ap/plan9/setgid.c index 7c9075c3f..0411b06a5 100644 --- a/sys/src/ape/lib/ap/plan9/setgid.c +++ b/sys/src/ape/lib/ap/plan9/setgid.c @@ -7,7 +7,7 @@ */ int -setgid(gid_t gid) +setgid(gid_t) { errno = EPERM; return -1; diff --git a/sys/src/ape/lib/ap/plan9/setuid.c b/sys/src/ape/lib/ap/plan9/setuid.c index a34f2de6f..2790bffe5 100644 --- a/sys/src/ape/lib/ap/plan9/setuid.c +++ b/sys/src/ape/lib/ap/plan9/setuid.c @@ -7,7 +7,7 @@ */ int -setuid(uid_t uid) +setuid(uid_t) { errno = EPERM; return -1; diff --git a/sys/src/ape/lib/ap/plan9/signal.c b/sys/src/ape/lib/ap/plan9/signal.c index b9bfbb715..ac5a46e06 100644 --- a/sys/src/ape/lib/ap/plan9/signal.c +++ b/sys/src/ape/lib/ap/plan9/signal.c @@ -107,7 +107,7 @@ _notehandler(Ureg *u, char *msg) /* notetramp is machine-dependent; doesn't return to here */ } _NOTED(0); /* NCONT */ - return; + return 0; } } _doatexits(); diff --git a/sys/src/ape/lib/ap/plan9/sigsuspend.c b/sys/src/ape/lib/ap/plan9/sigsuspend.c index 290c15d0f..029e3b45a 100644 --- a/sys/src/ape/lib/ap/plan9/sigsuspend.c +++ b/sys/src/ape/lib/ap/plan9/sigsuspend.c @@ -6,7 +6,7 @@ */ int -sigsuspend(sigset_t *set) +sigsuspend(sigset_t *) { errno = EINVAL; return -1; diff --git a/sys/src/ape/lib/ap/plan9/tcgetattr.c b/sys/src/ape/lib/ap/plan9/tcgetattr.c index c93c21b5b..e53feadac 100644 --- a/sys/src/ape/lib/ap/plan9/tcgetattr.c +++ b/sys/src/ape/lib/ap/plan9/tcgetattr.c @@ -87,7 +87,7 @@ tcgetattr(int fd, struct termios *t) /* BUG: ignores optional actions */ int -tcsetattr(int fd, int optactions, const struct termios *t) +tcsetattr(int fd, int, const struct termios *t) { int n, i; char buf[100]; diff --git a/sys/src/ape/lib/ap/plan9/umask.c b/sys/src/ape/lib/ap/plan9/umask.c index b45b7576c..04eb8c5f9 100644 --- a/sys/src/ape/lib/ap/plan9/umask.c +++ b/sys/src/ape/lib/ap/plan9/umask.c @@ -7,7 +7,7 @@ */ mode_t -umask(mode_t numask) +umask(mode_t) { return 0; } diff --git a/sys/src/ape/lib/ap/plan9/unlink.c b/sys/src/ape/lib/ap/plan9/unlink.c index c79f1b83b..90085419f 100644 --- a/sys/src/ape/lib/ap/plan9/unlink.c +++ b/sys/src/ape/lib/ap/plan9/unlink.c @@ -26,6 +26,7 @@ unlink(const char *path) _syserrno(); return -1; } + n = -1; fd = -1; for(i=0, f = _fdinfo;i < OPEN_MAX; i++, f++) { if((f->flags&FD_ISOPEN) && (db2=_dirfstat(i)) != nil) { diff --git a/sys/src/ape/lib/ap/posix/getpwent.c b/sys/src/ape/lib/ap/posix/getpwent.c index 779ae3a54..64d386d4b 100644 --- a/sys/src/ape/lib/ap/posix/getpwent.c +++ b/sys/src/ape/lib/ap/posix/getpwent.c @@ -49,7 +49,7 @@ pwdecode(char *p) passwd.pw_dir = p; p = pwskip(p); passwd.pw_shell = p; - p = pwskip(p); + pwskip(p); return(&passwd); } diff --git a/sys/src/ape/lib/ap/posix/mkfifo.c b/sys/src/ape/lib/ap/posix/mkfifo.c index 7dbc8f5b6..ffd8cb8ea 100644 --- a/sys/src/ape/lib/ap/posix/mkfifo.c +++ b/sys/src/ape/lib/ap/posix/mkfifo.c @@ -3,7 +3,7 @@ #include int -mkfifo(char *path, mode_t mode) +mkfifo(char *, mode_t) { #pragma ref path #pragma ref mode diff --git a/sys/src/ape/lib/ap/posix/mkfile b/sys/src/ape/lib/ap/posix/mkfile index 387208c5e..725694358 100644 --- a/sys/src/ape/lib/ap/posix/mkfile +++ b/sys/src/ape/lib/ap/posix/mkfile @@ -14,4 +14,4 @@ OFILES=\ long -pathconf(const char *path, int name) +pathconf(const char *, int name) { #pragma ref path @@ -46,10 +46,8 @@ pathconf(const char *path, int name) } long -fpathconf(int fd, int name) +fpathconf(int, int name) { -#pragma ref fd - return pathconf(0, name); } diff --git a/sys/src/ape/lib/ap/posix/tzset.c b/sys/src/ape/lib/ap/posix/tzset.c index f4cbac075..67a367d61 100644 --- a/sys/src/ape/lib/ap/posix/tzset.c +++ b/sys/src/ape/lib/ap/posix/tzset.c @@ -20,6 +20,7 @@ tzset(void) { char *env, *p, *q; + env = NULL; if((p = getenv("timezone")) == 0) goto error; if((env = malloc(strlen(p) + 1)) == 0) diff --git a/sys/src/ape/lib/ap/stdio/_fconv.c b/sys/src/ape/lib/ap/stdio/_fconv.c index fc72d4731..1f6d750d4 100644 --- a/sys/src/ape/lib/ap/stdio/_fconv.c +++ b/sys/src/ape/lib/ap/stdio/_fconv.c @@ -509,7 +509,7 @@ _d2b(double darg, int *e, int *bits) } else x[0] = y; - i = b->wds = (x[1] = z) ? 2 : 1; + b->wds = (x[1] = z) ? 2 : 1; } else { #ifdef DEBUG @@ -518,7 +518,7 @@ _d2b(double darg, int *e, int *bits) #endif k = lo0bits(&z); x[0] = z; - i = b->wds = 1; + b->wds = 1; k += 32; } #else diff --git a/sys/src/ape/lib/ap/stdio/ftoa.c b/sys/src/ape/lib/ap/stdio/ftoa.c index b241d2d43..b0e5adc80 100644 --- a/sys/src/ape/lib/ap/stdio/ftoa.c +++ b/sys/src/ape/lib/ap/stdio/ftoa.c @@ -27,7 +27,7 @@ int ftoa(double f, char *bp){ e1=e/2; e2=e-e1; p=f*pow10(e2); - while((g=p*pow10(e1))<1.) e1++; + while((p*pow10(e1))<1.) e1++; while((g=p*pow10(e1))>=10.) --e1; e=e1+e2; f=g; diff --git a/sys/src/ape/lib/ap/stdio/mkfile b/sys/src/ape/lib/ap/stdio/mkfile index 76e51b27b..a8f392c82 100644 --- a/sys/src/ape/lib/ap/stdio/mkfile +++ b/sys/src/ape/lib/ap/stdio/mkfile @@ -66,4 +66,4 @@ OFILES=\ +#include #include #include #include @@ -218,9 +219,8 @@ vfprintf(FILE *f, const char *s, va_list args) } static int -ocvt_c(FILE *f, va_list *args, int flags, int width, int precision) +ocvt_c(FILE *f, va_list *args, int flags, int width, int) { -#pragma ref precision int i; if(!(flags&LEFT)) for(i=1; i