1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2025-02-01 20:06:00 +00:00

b-c--cond-jump-table-info: Use correct body for singleton clauses

* lisp/emacs-lisp/bytecomp.el (byte-compile-cond-jump-table-info):
When a clause's body consists of a single constant expression, use
that expression as the body to be compiled. This fixes switch bytecode
evaluating to nil to such clauses.
This commit is contained in:
Vibhav Pant 2017-04-22 20:38:53 +05:30
parent ace38bafa6
commit 1c91bc9221

View File

@ -4066,8 +4066,8 @@ Return a list of the form ((TEST . VAR) ((VALUE BODY) ...))"
;; discard duplicate clauses
(not (assq obj2 cases)))
(push (list (if (consp obj2) (eval obj2) obj2) body) cases)
(if (eq condition t)
(progn (push (list 'default body) cases)
(if (and (macroexp-const-p condition) condition)
(progn (push (list 'default (or body `(,condition))) cases)
(throw 'break t))
(setq ok nil)
(throw 'break nil))))))