]> code.delx.au - gnu-emacs/commitdiff
* lisp/emacs-lisp/bytecomp.el (=, <, >, <=, >=): Don't optimize multi-arg
authorStefan Monnier <monnier@iro.umontreal.ca>
Mon, 20 Oct 2014 02:36:22 +0000 (22:36 -0400)
committerStefan Monnier <monnier@iro.umontreal.ca>
Mon, 20 Oct 2014 02:36:22 +0000 (22:36 -0400)
case.

Fixes: debbugs:18767
lisp/ChangeLog
lisp/emacs-lisp/bytecomp.el

index 6b0c8a67b796be091fa3d1b48a2260241d2f43ca..1a458522079cf3191aba1ab8a5ac25b09d452647 100644 (file)
@@ -1,3 +1,8 @@
+2014-10-20  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * emacs-lisp/bytecomp.el (=, <, >, <=, >=): Don't optimize multi-arg
+       case (bug#18767).
+
 2014-10-15  Alan Mackenzie  <acm@muc.de>
 
        * cus-edit.el (custom-command-apply): Specify the return value in
index e5f8a8cc22ab4ec2e8a058358191e240e08f0946..69c4e0f1628774b41afb80fbf1c72fc557a8fe2a 100644 (file)
@@ -3261,11 +3261,11 @@ If it is nil, then the handler is \"byte-compile-SYMBOL.\""
 (byte-defop-compiler cons              2)
 (byte-defop-compiler aref              2)
 (byte-defop-compiler set               2)
-(byte-defop-compiler (= byte-eqlsign)  2-and)
-(byte-defop-compiler (< byte-lss)      2-and)
-(byte-defop-compiler (> byte-gtr)      2-and)
-(byte-defop-compiler (<= byte-leq)     2-and)
-(byte-defop-compiler (>= byte-geq)     2-and)
+(byte-defop-compiler (= byte-eqlsign)  2) ;; -and  bug#18767
+(byte-defop-compiler (< byte-lss)      2) ;; -and  bug#18767
+(byte-defop-compiler (> byte-gtr)      2) ;; -and  bug#18767
+(byte-defop-compiler (<= byte-leq)     2) ;; -and  bug#18767
+(byte-defop-compiler (>= byte-geq)     2) ;; -and  bug#18767
 (byte-defop-compiler get               2)
 (byte-defop-compiler nth               2)
 (byte-defop-compiler substring         2-3)
@@ -3332,6 +3332,7 @@ If it is nil, then the handler is \"byte-compile-SYMBOL.\""
 (defun byte-compile-and-folded (form)
   "Compile calls to functions like `<='.
 These implicitly `and' together a bunch of two-arg bytecodes."
+  ;; FIXME: bug#18767 means we can't do it this way!
   (let ((l (length form)))
     (cond
      ((< l 3) (byte-compile-form `(progn ,(nth 1 form) t)))