changeset 15972:b741b3129c1b

(byte-compile-associative): Treat one arg case like (+ x 0).
author Richard M. Stallman <rms@gnu.org>
date Thu, 29 Aug 1996 06:20:21 +0000
parents 9e9c14ecf6e1
children 6ad9e8fee494
files lisp/emacs-lisp/bytecomp.el
diffstat 1 files changed, 5 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/emacs-lisp/bytecomp.el	Thu Aug 29 04:42:40 1996 +0000
+++ b/lisp/emacs-lisp/bytecomp.el	Thu Aug 29 06:20:21 1996 +0000
@@ -10,7 +10,7 @@
 
 ;;; This version incorporates changes up to version 2.10 of the 
 ;;; Zawinski-Furuseth compiler.
-(defconst byte-compile-version "$Revision: 2.15 $")
+(defconst byte-compile-version "$Revision: 2.16 $")
 
 ;; This file is part of GNU Emacs.
 
@@ -2473,12 +2473,16 @@
 ;; Compile a function that accepts one or more args and is right-associative.
 ;; We do it by left-associativity so that the operations
 ;; are done in the same order as in interpreted code.
+;; We treat the one-arg case, as in (+ x), like (+ x 0).
+;; in order to convert markers to numbers, and trigger expected errors.
 (defun byte-compile-associative (form)
   (if (cdr form)
       (let ((opcode (get (car form) 'byte-opcode))
 	    (args (copy-sequence (cdr form))))
 	(byte-compile-form (car args))
 	(setq args (cdr args))
+	(or args (setq args '(0)
+		       opcode (get '+ 'byte-opcode)))
 	(while args
 	  (byte-compile-form (car args))
 	  (byte-compile-out opcode 0)