Author: jilles
Date: Mon Apr  1 17:18:22 2013
New Revision: 248980
URL: http://svnweb.freebsd.org/changeset/base/248980

Log:
  sh: Fix various compiler warnings.
  
  It now passes WARNS=7 with clang on i386.
  
  GCC 4.2.1 does not understand setjmp() properly so will always trigger
  -Wuninitialized. I will not add the volatile keywords to suppress this.

Modified:
  head/bin/sh/exec.c
  head/bin/sh/expand.c
  head/bin/sh/input.c
  head/bin/sh/input.h
  head/bin/sh/jobs.c
  head/bin/sh/main.c
  head/bin/sh/memalloc.c
  head/bin/sh/memalloc.h
  head/bin/sh/parser.c
  head/bin/sh/parser.h
  head/bin/sh/trap.c

Modified: head/bin/sh/exec.c
==============================================================================
--- head/bin/sh/exec.c  Mon Apr  1 17:15:04 2013        (r248979)
+++ head/bin/sh/exec.c  Mon Apr  1 17:18:22 2013        (r248980)
@@ -165,7 +165,7 @@ tryexec(char *cmd, char **argv, char **e
                        }
                }
                *argv = cmd;
-               *--argv = _PATH_BSHELL;
+               *--argv = __DECONST(char *, _PATH_BSHELL);
                execve(_PATH_BSHELL, argv, envp);
        }
        errno = e;
@@ -188,7 +188,7 @@ padvance(const char **path, const char *
 {
        const char *p, *start;
        char *q;
-       int len;
+       size_t len;
 
        if (*path == NULL)
                return NULL;

Modified: head/bin/sh/expand.c
==============================================================================
--- head/bin/sh/expand.c        Mon Apr  1 17:15:04 2013        (r248979)
+++ head/bin/sh/expand.c        Mon Apr  1 17:18:22 2013        (r248980)
@@ -460,7 +460,7 @@ expbackq(union node *cmd, int quoted, in
        int startloc = dest - stackblock();
        char const *syntax = quoted? DQSYNTAX : BASESYNTAX;
        int quotes = flag & (EXP_FULL | EXP_CASE | EXP_REDIR);
-       int nnl;
+       size_t nnl;
 
        INTOFF;
        saveifs = ifsfirst;
@@ -1163,9 +1163,9 @@ nometa:
 static void
 expmeta(char *enddir, char *name)
 {
-       char *p;
-       char *q;
-       char *start;
+       const char *p;
+       const char *q;
+       const char *start;
        char *endname;
        int metaflag;
        struct stat statb;
@@ -1229,7 +1229,7 @@ expmeta(char *enddir, char *name)
                        addfname(expdir);
                return;
        }
-       endname = p;
+       endname = name + (p - name);
        if (start != name) {
                p = name;
                while (p < start) {
@@ -1412,7 +1412,8 @@ match_charclass(const char *p, wchar_t c
        *end = NULL;
        p++;
        nameend = strstr(p, ":]");
-       if (nameend == NULL || nameend - p >= sizeof(name) || nameend == p)
+       if (nameend == NULL || (size_t)(nameend - p) >= sizeof(name) ||
+           nameend == p)
                return 0;
        memcpy(name, p, nameend - p);
        name[nameend - p] = '\0';

Modified: head/bin/sh/input.c
==============================================================================
--- head/bin/sh/input.c Mon Apr  1 17:15:04 2013        (r248979)
+++ head/bin/sh/input.c Mon Apr  1 17:18:22 2013        (r248980)
@@ -66,7 +66,7 @@ __FBSDID("$FreeBSD$");
 
 struct strpush {
        struct strpush *prev;   /* preceding string on stack */
-       char *prevstring;
+       const char *prevstring;
        int prevnleft;
        int prevlleft;
        struct alias *ap;       /* if push was associated with an alias */
@@ -83,7 +83,7 @@ struct parsefile {
        int fd;                 /* file descriptor (or -1 if string) */
        int nleft;              /* number of chars left in this line */
        int lleft;              /* number of lines left in this buffer */
-       char *nextc;            /* next char in buffer */
+       const char *nextc;      /* next char in buffer */
        char *buf;              /* input buffer */
        struct strpush *strpush; /* for pushing strings at this level */
        struct strpush basestrpush; /* so pushing one is fast */
@@ -93,7 +93,7 @@ struct parsefile {
 int plinno = 1;                        /* input line number */
 int parsenleft;                        /* copy of parsefile->nleft */
 MKINIT int parselleft;         /* copy of parsefile->lleft */
-char *parsenextc;              /* copy of parsefile->nextc */
+const char *parsenextc;                /* copy of parsefile->nextc */
 static char basebuf[BUFSIZ + 1];/* buffer for top level input file */
 static struct parsefile basepf = {     /* top level input file */
        .nextc = basebuf,
@@ -185,7 +185,7 @@ retry:
                        nr = el_len;
                        if (nr > BUFSIZ)
                                nr = BUFSIZ;
-                       memcpy(parsenextc, rl_cp, nr);
+                       memcpy(parsefile->buf, rl_cp, nr);
                        if (nr != el_len) {
                                el_len -= nr;
                                rl_cp += nr;
@@ -194,7 +194,7 @@ retry:
                }
        } else
 #endif
-               nr = read(parsefile->fd, parsenextc, BUFSIZ);
+               nr = read(parsefile->fd, parsefile->buf, BUFSIZ);
 
        if (nr <= 0) {
                 if (nr < 0) {
@@ -252,7 +252,7 @@ again:
                }
        }
 
-       q = p = parsenextc;
+       q = p = parsefile->buf + (parsenextc - parsefile->buf);
 
        /* delete nul characters */
        something = 0;
@@ -439,7 +439,7 @@ setinputfd(int fd, int push)
  */
 
 void
-setinputstring(char *string, int push)
+setinputstring(const char *string, int push)
 {
        INTOFF;
        if (push)

Modified: head/bin/sh/input.h
==============================================================================
--- head/bin/sh/input.h Mon Apr  1 17:15:04 2013        (r248979)
+++ head/bin/sh/input.h Mon Apr  1 17:18:22 2013        (r248980)
@@ -42,7 +42,7 @@
  */
 extern int plinno;
 extern int parsenleft;         /* number of characters left in input buffer */
-extern char *parsenextc;       /* next character in input buffer */
+extern const char *parsenextc; /* next character in input buffer */
 
 struct alias;
 struct parsefile;
@@ -55,7 +55,7 @@ void pungetc(void);
 void pushstring(char *, int, struct alias *);
 void setinputfile(const char *, int);
 void setinputfd(int, int);
-void setinputstring(char *, int);
+void setinputstring(const char *, int);
 void popfile(void);
 struct parsefile *getcurrentfile(void);
 void popfilesupto(struct parsefile *);

Modified: head/bin/sh/jobs.c
==============================================================================
--- head/bin/sh/jobs.c  Mon Apr  1 17:15:04 2013        (r248979)
+++ head/bin/sh/jobs.c  Mon Apr  1 17:18:22 2013        (r248980)
@@ -668,7 +668,8 @@ makejob(union node *node __unused, int n
                                jobtab = jp;
                        }
                        jp = jobtab + njobs;
-                       for (i = 4 ; --i >= 0 ; jobtab[njobs++].used = 0);
+                       for (i = 4 ; --i >= 0 ; jobtab[njobs++].used = 0)
+                               ;
                        INTON;
                        break;
                }
@@ -1005,7 +1006,7 @@ waitforjob(struct job *jp, int *origstat
 
 
 static void
-dummy_handler(int sig)
+dummy_handler(int sig __unused)
 {
 }
 

Modified: head/bin/sh/main.c
==============================================================================
--- head/bin/sh/main.c  Mon Apr  1 17:15:04 2013        (r248979)
+++ head/bin/sh/main.c  Mon Apr  1 17:18:22 2013        (r248980)
@@ -80,7 +80,7 @@ struct jmploc main_handler;
 int localeisutf8, initial_localeisutf8;
 
 static void cmdloop(int);
-static void read_profile(char *);
+static void read_profile(const char *);
 static char *find_dot_file(char *);
 
 /*
@@ -239,7 +239,7 @@ cmdloop(int top)
  */
 
 static void
-read_profile(char *name)
+read_profile(const char *name)
 {
        int fd;
        const char *expandedname;

Modified: head/bin/sh/memalloc.c
==============================================================================
--- head/bin/sh/memalloc.c      Mon Apr  1 17:15:04 2013        (r248979)
+++ head/bin/sh/memalloc.c      Mon Apr  1 17:18:22 2013        (r248980)
@@ -233,7 +233,8 @@ growstackblock(int min)
 
        if (min < stacknleft)
                min = stacknleft;
-       if (min >= INT_MAX / 2 - ALIGN(sizeof(struct stack_block)))
+       if ((unsigned int)min >=
+           INT_MAX / 2 - ALIGN(sizeof(struct stack_block)))
                error("Out of space");
        min += stacknleft;
        min += ALIGN(sizeof(struct stack_block));
@@ -327,7 +328,7 @@ makestrspace(int min, char *p)
 
 
 char *
-stputbin(const char *data, int len, char *p)
+stputbin(const char *data, size_t len, char *p)
 {
        CHECKSTRSPACE(len, p);
        memcpy(p, data, len);

Modified: head/bin/sh/memalloc.h
==============================================================================
--- head/bin/sh/memalloc.h      Mon Apr  1 17:15:04 2013        (r248979)
+++ head/bin/sh/memalloc.h      Mon Apr  1 17:18:22 2013        (r248980)
@@ -57,7 +57,7 @@ void setstackmark(struct stackmark *);
 void popstackmark(struct stackmark *);
 char *growstackstr(void);
 char *makestrspace(int, char *);
-char *stputbin(const char *data, int len, char *p);
+char *stputbin(const char *data, size_t len, char *p);
 char *stputs(const char *data, char *p);
 
 
@@ -67,7 +67,7 @@ char *stputs(const char *data, char *p);
 #define grabstackblock(n) stalloc(n)
 #define STARTSTACKSTR(p)       p = stackblock()
 #define STPUTC(c, p)   do { if (p == sstrend) p = growstackstr(); *p++ = (c); 
} while(0)
-#define CHECKSTRSPACE(n, p)    { if (sstrend - p < n) p = makestrspace(n, p); }
+#define CHECKSTRSPACE(n, p)    { if ((size_t)(sstrend - p) < n) p = 
makestrspace(n, p); }
 #define USTPUTC(c, p)  (*p++ = (c))
 /*
  * STACKSTRNUL's use is where we want to be able to turn a stack

Modified: head/bin/sh/parser.c
==============================================================================
--- head/bin/sh/parser.c        Mon Apr  1 17:15:04 2013        (r248979)
+++ head/bin/sh/parser.c        Mon Apr  1 17:18:22 2013        (r248980)
@@ -119,7 +119,7 @@ static void parseheredoc(void);
 static int peektoken(void);
 static int readtoken(void);
 static int xxreadtoken(void);
-static int readtoken1(int, char const *, char *, int);
+static int readtoken1(int, const char *, const char *, int);
 static int noexpand(char *);
 static void synexpect(int) __dead2;
 static void synerror(const char *) __dead2;
@@ -983,7 +983,7 @@ parsebackq(char *out, struct nodelist **
        char *volatile str;
        struct jmploc jmploc;
        struct jmploc *const savehandler = handler;
-       int savelen;
+       size_t savelen;
        int saveprompt;
        const int bq_startlinno = plinno;
        char *volatile ostr = NULL;
@@ -1300,7 +1300,8 @@ readcstyleesc(char *out)
 #define        PARSEARITH()    {goto parsearith; parsearith_return:;}
 
 static int
-readtoken1(int firstc, char const *initialsyntax, char *eofmark, int striptabs)
+readtoken1(int firstc, char const *initialsyntax, const char *eofmark,
+    int striptabs)
 {
        int c = firstc;
        char *out;
@@ -1521,7 +1522,7 @@ checkend: {
                }
                if (c == *eofmark) {
                        if (pfgets(line, sizeof line) != NULL) {
-                               char *p, *q;
+                               const char *p, *q;
 
                                p = line;
                                for (q = eofmark + 1 ; *q && *p == *q ; p++, 
q++);
@@ -2038,7 +2039,7 @@ getprompt(void *unused __unused)
 
 
 const char *
-expandstr(char *ps)
+expandstr(const char *ps)
 {
        union node n;
        struct jmploc jmploc;

Modified: head/bin/sh/parser.h
==============================================================================
--- head/bin/sh/parser.h        Mon Apr  1 17:15:04 2013        (r248979)
+++ head/bin/sh/parser.h        Mon Apr  1 17:18:22 2013        (r248980)
@@ -82,4 +82,4 @@ void fixredir(union node *, const char *
 int goodname(const char *);
 int isassignment(const char *);
 char *getprompt(void *);
-const char *expandstr(char *);
+const char *expandstr(const char *);

Modified: head/bin/sh/trap.c
==============================================================================
--- head/bin/sh/trap.c  Mon Apr  1 17:15:04 2013        (r248979)
+++ head/bin/sh/trap.c  Mon Apr  1 17:18:22 2013        (r248980)
@@ -150,7 +150,7 @@ printsignals(void)
  * The trap builtin.
  */
 int
-trapcmd(int argc, char **argv)
+trapcmd(int argc __unused, char **argv)
 {
        char *action;
        int signo;
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to