aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPaul Eggert2017-05-06 14:21:19 -0700
committerPaul Eggert2017-05-06 14:25:13 -0700
commit0a13c725132ade2709da217cac70e3847a387c58 (patch)
treec7e756621c54a8a149e6ef871358fe24d75d201b /src
parentcea3b22bc742699d60c33194b73b391c05a2456d (diff)
downloademacs-0a13c725132ade2709da217cac70e3847a387c58.tar.gz
emacs-0a13c725132ade2709da217cac70e3847a387c58.zip
Pacify GCC setjmp/longjmp warning
* src/eval.c (internal_lisp_condition_case): Do not modify local var VAR, to pacify GCC’s setjmp/longjmp warning which in some cases mistakenly diagnoses VAR possibly being modified between a setjmp and a longjmp.
Diffstat (limited to 'src')
-rw-r--r--src/eval.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/eval.c b/src/eval.c
index 0030271c533..848955c2794 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -1277,18 +1277,19 @@ internal_lisp_condition_case (Lisp_Object var, Lisp_Object bodyform,
1277 if (NILP (var)) 1277 if (NILP (var))
1278 return Fprogn (handler_body); 1278 return Fprogn (handler_body);
1279 1279
1280 Lisp_Object handler_var = var;
1280 if (!NILP (Vinternal_interpreter_environment)) 1281 if (!NILP (Vinternal_interpreter_environment))
1281 { 1282 {
1282 val = Fcons (Fcons (var, val), 1283 val = Fcons (Fcons (var, val),
1283 Vinternal_interpreter_environment); 1284 Vinternal_interpreter_environment);
1284 var = Qinternal_interpreter_environment; 1285 handler_var = Qinternal_interpreter_environment;
1285 } 1286 }
1286 1287
1287 /* Bind VAR to VAL while evaluating HANDLER_BODY. The 1288 /* Bind HANDLER_VAR to VAL while evaluating HANDLER_BODY.
1288 unbind_to just undoes VAR's binding; whoever longjumped 1289 The unbind_to undoes just this binding; whoever longjumped
1289 to us unwound the stack to C->pdlcount before throwing. */ 1290 to us unwound the stack to C->pdlcount before throwing. */
1290 ptrdiff_t count = SPECPDL_INDEX (); 1291 ptrdiff_t count = SPECPDL_INDEX ();
1291 specbind (var, val); 1292 specbind (handler_var, val);
1292 return unbind_to (count, Fprogn (handler_body)); 1293 return unbind_to (count, Fprogn (handler_body));
1293 } 1294 }
1294 } 1295 }