summary refs log tree commit diff
path: root/src/eval.c
diff options
context:
space:
mode:
authorJim Meyering <meyering@redhat.com>2011-07-08 16:41:24 +0800
committerHerbert Xu <herbert@gondor.apana.org.au>2011-07-08 16:41:24 +0800
commit4e6797b08bfe25a89af13cfe7ca60bf4e1551a7b (patch)
treeed8fdc5ff4e5aa339b55f496785079282a2732b8 /src/eval.c
parent[MEMALLOC] Avoid clang warning about dead store to "size" (diff)
downloaddash-4e6797b08bfe25a89af13cfe7ca60bf4e1551a7b.tar.gz
dash-4e6797b08bfe25a89af13cfe7ca60bf4e1551a7b.zip
[EVAL] Avoid using undefined handler
* src/eval.c (evalbltin, evalfun): Set savehandler before calling
setjmp with the possible "goto *done", where savehandler is used.
Otherwise, clang warns that "Assigned value is garbage or undefined"
at the point where "savehandler" is used on the RHS.

Signed-off-by: Jim Meyering <meyering@redhat.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'src/eval.c')
-rw-r--r--src/eval.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/eval.c b/src/eval.c
index 6e7b932..95d30f4 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -897,9 +897,9 @@ evalbltin(const struct builtincmd *cmd, int argc, char **argv, int flags)
 	int i;
 
 	savecmdname = commandname;
+	savehandler = handler;
 	if ((i = setjmp(jmploc.loc)))
 		goto cmddone;
-	savehandler = handler;
 	handler = &jmploc;
 	commandname = argv[0];
 	argptr = argv + 1;
@@ -930,11 +930,11 @@ evalfun(struct funcnode *func, int argc, char **argv, int flags)
 
 	saveparam = shellparam;
 	savefuncline = funcline;
+	savehandler = handler;
 	if ((e = setjmp(jmploc.loc))) {
 		goto funcdone;
 	}
 	INTOFF;
-	savehandler = handler;
 	handler = &jmploc;
 	shellparam.malloc = 0;
 	func->count++;