summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp/find-func.el
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2012-09-11 16:50:28 -0700
committerPaul Eggert <eggert@cs.ucla.edu>2012-09-11 16:50:28 -0700
commit50f2e553ce21a2901e9f935650018289c11fcc39 (patch)
tree552cc944b7ba27f3e8e6931709836297214d81f3 /lisp/emacs-lisp/find-func.el
parentae1d87e24edc6a5fa4bc291e1b2ea20d7853127c (diff)
downloademacs-50f2e553ce21a2901e9f935650018289c11fcc39.tar.gz
emacs-50f2e553ce21a2901e9f935650018289c11fcc39.tar.bz2
emacs-50f2e553ce21a2901e9f935650018289c11fcc39.zip
Avoid _setjmp/_longjmp problems with local nonvolatile variables.
If a nonvolatile local variable is written before a _longjmp to the frame containing the variable, and is read after the _longjmp, the value read is indeterminate. Some local variables of type 'struct handler' and 'struct catchtag' are used in this way, so mark each of their slots as volatile if the slot can be set before _longjmp and read afterwards. * lisp.h (struct handler): var and chosen_clause are now volatile. (struct catchtag): val, next, and pdlcount are now volatile.
Diffstat (limited to 'lisp/emacs-lisp/find-func.el')
0 files changed, 0 insertions, 0 deletions