Use volatile where appropriate.
authorPeter Avalos <pavalos@dragonflybsd.org>
Sun, 14 Jan 2007 17:29:58 +0000 (17:29 +0000)
committerPeter Avalos <pavalos@dragonflybsd.org>
Sun, 14 Jan 2007 17:29:58 +0000 (17:29 +0000)
Partially taken from NetBSD.

bin/sh/eval.c
bin/sh/histedit.c
bin/sh/parser.c
bin/sh/var.c

index d1c89bc..b80dc83 100644 (file)
@@ -35,7 +35,7 @@
  *
  * @(#)eval.c  8.9 (Berkeley) 6/8/95
  * $FreeBSD: src/bin/sh/eval.c,v 1.53 2006/06/15 07:57:05 stefanf Exp $
- * $DragonFly: src/bin/sh/eval.c,v 1.10 2007/01/07 01:14:53 pavalos Exp $
+ * $DragonFly: src/bin/sh/eval.c,v 1.11 2007/01/14 17:29:58 pavalos Exp $
  */
 
 #include <sys/resource.h>
@@ -569,14 +569,15 @@ out:
  */
 
 STATIC void
-evalcommand(union node *cmd, int flags, struct backcmd *backcmd)
+evalcommand(union node *cmd, int flgs, struct backcmd *backcmd)
 {
        struct stackmark smark;
        union node *argp;
        struct arglist arglist;
        struct arglist varlist;
-       char **argv;
-       int argc;
+       volatile int flags = flgs;
+       char **volatile argv;
+       volatile int argc;
        char **envp;
        int varflag;
        struct strlist *sp;
@@ -590,17 +591,9 @@ evalcommand(union node *cmd, int flags, struct backcmd *backcmd)
        volatile struct shparam saveparam;
        struct localvar *volatile savelocalvars;
        volatile int e;
-       char *lastarg;
+       char *volatile lastarg;
        int realstatus;
-       int do_clearcmdentry;
-#if __GNUC__
-       /* Avoid longjmp clobbering */
-       (void) &argv;
-       (void) &argc;
-       (void) &lastarg;
-       (void) &flags;
-       (void) &do_clearcmdentry;
-#endif
+       volatile int do_clearcmdentry;
 
        /* First expand the arguments. */
        TRACE(("evalcommand(%p, %d) called\n", (void *)cmd, flags));
@@ -978,17 +971,10 @@ commandcmd(int argc, char **argv)
        static char stdpath[] = _PATH_STDPATH;
        struct jmploc loc, *old;
        struct strlist *sp;
-       const char *path;
+       const char *volatile path;
        int ch;
        int cmd = -1;
 
-#ifdef __GNUC__
-       /* Avoid longjmp clobbering */
-       (void) &path;
-       (void) &argc;
-       (void) &argv;
-#endif
-
        for (sp = cmdenviron; sp ; sp = sp->next)
                setvareq(sp->text, VEXPORT|VSTACK);
        path = pathval();
index 29fa0d3..208a283 100644 (file)
@@ -35,7 +35,7 @@
  *
  * @(#)histedit.c      8.2 (Berkeley) 5/4/95
  * $FreeBSD: src/bin/sh/histedit.c,v 1.29 2006/08/04 07:56:31 yar Exp $
- * $DragonFly: src/bin/sh/histedit.c,v 1.10 2007/01/13 19:47:55 pavalos Exp $
+ * $DragonFly: src/bin/sh/histedit.c,v 1.11 2007/01/14 17:29:58 pavalos Exp $
  */
 
 #include <sys/param.h>
@@ -175,34 +175,19 @@ int
 histcmd(int argc, char **argv)
 {
        int ch;
-       const char *editor = NULL;
+       const char *volatile editor = NULL;
        HistEvent he;
-       int lflg = 0, nflg = 0, rflg = 0, sflg = 0;
+       volatile int lflg = 0, nflg = 0, rflg = 0, sflg = 0;
        int i, retval;
-       const char *firststr, *laststr;
+       const char *firststr = NULL, *laststr = NULL;
        int first, last, direction;
-       char *pat = NULL, *repl;
+       char *pat = NULL, *repl = NULL;
        static int active = 0;
        struct jmploc jmploc;
        struct jmploc *volatile savehandler;
        char editfile[PATH_MAX];
-       FILE *efp;
+       FILE *efp = NULL;
        int oldhistnum;
-#ifdef __GNUC__
-       /* Avoid longjmp clobbering */
-       (void) &editor;
-       (void) &lflg;
-       (void) &nflg;
-       (void) &rflg;
-       (void) &sflg;
-       (void) &firststr;
-       (void) &laststr;
-       (void) &pat;
-       (void) &repl;
-       (void) &efp;
-       (void) &argc;
-       (void) &argv;
-#endif
 
        if (hist == NULL)
                error("history not active");
index b76cc84..ab60425 100644 (file)
@@ -35,7 +35,7 @@
  *
  * @(#)parser.c        8.7 (Berkeley) 5/16/95
  * $FreeBSD: src/bin/sh/parser.c,v 1.58 2006/11/05 18:36:05 stefanf Exp $
- * $DragonFly: src/bin/sh/parser.c,v 1.10 2007/01/14 05:39:22 pavalos Exp $
+ * $DragonFly: src/bin/sh/parser.c,v 1.11 2007/01/14 17:29:58 pavalos Exp $
  */
 
 #include <stdlib.h>
@@ -880,34 +880,22 @@ breakloop:
 #define        PARSEARITH()    {goto parsearith; parsearith_return:;}
 
 STATIC int
-readtoken1(int firstc, char const *syntax, char *eofmark, int striptabs)
+readtoken1(int firstc, char const *syn, char *eofmark, int striptabs)
 {
        int c = firstc;
-       char *out;
+       char const * volatile syntax = syn;
+       char * volatile out;
        int len;
        char line[EOFMARKLEN + 1];
        struct nodelist *bqlist;
-       int quotef;
-       int dblquote;
-       int varnest;    /* levels of variables expansion */
-       int arinest;    /* levels of arithmetic expansion */
-       int parenlevel; /* levels of parens in arithmetic */
-       int oldstyle;
-       char const *prevsyntax; /* syntax before arithmetic */
+       volatile int quotef;
+       volatile int dblquote;
+       volatile int varnest;   /* levels of variables expansion */
+       volatile int arinest;   /* levels of arithmetic expansion */
+       volatile int parenlevel;        /* levels of parens in arithmetic */
+       volatile int oldstyle;
+       char const * volatile prevsyntax = NULL;        /* syntax before arithmetic */
        int synentry;
-#if __GNUC__
-       /* Avoid longjmp clobbering */
-       (void) &out;
-       (void) &quotef;
-       (void) &dblquote;
-       (void) &varnest;
-       (void) &arinest;
-       (void) &parenlevel;
-       (void) &oldstyle;
-       (void) &prevsyntax;
-       (void) &syntax;
-       (void) &synentry;
-#endif
 
        startlinno = plinno;
        dblquote = 0;
@@ -1300,11 +1288,7 @@ parsebackq: {
        struct jmploc jmploc;
        struct jmploc *volatile savehandler;
        int savelen;
-       int saveprompt;
-#if __GNUC__
-       /* Avoid longjmp clobbering */
-       (void) &saveprompt;
-#endif
+       volatile int saveprompt;
 
        savepbq = parsebackquote;
        if (setjmp(jmploc.loc)) {
index c9fdef2..aab9da0 100644 (file)
@@ -35,7 +35,7 @@
  *
  * @(#)var.c   8.3 (Berkeley) 5/4/95
  * $FreeBSD: src/bin/sh/var.c,v 1.15.2.2 2002/08/27 01:36:28 tjr Exp $
- * $DragonFly: src/bin/sh/var.c,v 1.14 2007/01/14 15:14:52 pavalos Exp $
+ * $DragonFly: src/bin/sh/var.c,v 1.15 2007/01/14 17:29:58 pavalos Exp $
  */
 
 #include <unistd.h>
@@ -194,10 +194,6 @@ setvarsafe(const char *name, const char *val, int flags)
        struct jmploc jmploc;
        struct jmploc *volatile savehandler = handler;
        int err = 0;
-#if __GNUC__
-       /* Avoid longjmp clobbering */
-       (void) &err;
-#endif
 
        if (setjmp(jmploc.loc))
                err = 1;