summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp
diff options
context:
space:
mode:
authorVibhav Pant <vibhavp@gmail.com>2017-03-10 00:09:58 +0530
committerVibhav Pant <vibhavp@gmail.com>2017-03-10 00:22:35 +0530
commit092071345f265efcd3abd6de01552ebe95ffb9a1 (patch)
treef7a304a37159799fd28b8a394f31fed76f9c3d4a /lisp/emacs-lisp
parent37b88d7b92ba77a771ce0dbff940b3dec1a366c5 (diff)
downloademacs-092071345f265efcd3abd6de01552ebe95ffb9a1.tar.gz
emacs-092071345f265efcd3abd6de01552ebe95ffb9a1.tar.bz2
emacs-092071345f265efcd3abd6de01552ebe95ffb9a1.zip
Byte compile cond clauses without any bodies correctly.
* lisp/emacs-lisp/bytecomp.el (byte-compile-cond-jump-table): When a cond clause has no body, push t on to the stack.
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r--lisp/emacs-lisp/bytecomp.el4
1 files changed, 3 insertions, 1 deletions
diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el
index 25513bd0248..7cbef8e4340 100644
--- a/lisp/emacs-lisp/bytecomp.el
+++ b/lisp/emacs-lisp/bytecomp.el
@@ -4128,7 +4128,9 @@ Return a list of the form ((TEST . VAR) ((VALUE BODY) ...))"
;; depth/tag conflicts or violating asserts down the road.
;; To make sure `byte-compile-body' itself doesn't violate this,
;; we use `cl-assert'.
- (byte-compile-body body byte-compile--for-effect)
+ (if (null body)
+ (byte-compile-form t byte-compile--for-effect)
+ (byte-compile-body body byte-compile--for-effect))
(cl-assert (or (= byte-compile-depth init-depth)
(= byte-compile-depth (1+ init-depth))))
(byte-compile-goto 'byte-goto donetag)