From 1c91bc9221d12618c9fb5507561dd35b7e392cb6 Mon Sep 17 00:00:00 2001 From: Vibhav Pant Date: Sat, 22 Apr 2017 20:38:53 +0530 Subject: [PATCH] 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. --- lisp/emacs-lisp/bytecomp.el | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el index aba07102055..15dc24060aa 100644 --- a/lisp/emacs-lisp/bytecomp.el +++ b/lisp/emacs-lisp/bytecomp.el @@ -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)))))) -- 2.39.5