(setq unreferenced (nreverse unreferenced))
(while unreferenced
(byte-compile-warn
- (format "variable %s bound but not referenced" (car unreferenced)))
+ "variable %s bound but not referenced" (car unreferenced))
(setq unreferenced (cdr unreferenced)))))
\f
(body (cdr (cdr fun)))
(doc (if (stringp (car body))
(prog1 (car body)
- (setq body (cdr body)))))
+ ;; Discard the doc string
+ ;; only if it is not the only element of the body.
+ (if (cdr body)
+ (setq body (cdr body))))))
(int (assq 'interactive body)))
(dolist (arg arglist)
(cond ((not (symbolp arg))
(byte-defop-compiler char-after 0-1+1)
(byte-defop-compiler set-buffer 1)
;;(byte-defop-compiler set-mark 1) ;; obsolete
-(byte-defop-compiler forward-word 1+1)
+(byte-defop-compiler forward-word 0-1+1)
(byte-defop-compiler char-syntax 1+1)
(byte-defop-compiler nreverse 1)
(byte-defop-compiler car-safe 1)
(defun byte-compile-arithcompare (form)
(case (length (cdr form))
(0 (byte-compile-subr-wrong-args form "1 or more"))
- (1 (byte-compile-constant t))
+ (1 (if byte-compile-delete-errors
+ (byte-compile-constant t)
+ (byte-compile-normal-call form)))
(2 (byte-compile-two-args form))
(t (byte-compile-normal-call form))))
;; `defconst' sets `var' unconditionally.
`(setq ,var ,value)
;; `defvar' sets `var' only when unbound.
- `(if (not (boundp ',var)) (setq ,var ,value))))
+ `(if (not (default-boundp ',var)) (set-default ',var ,value))))
`',var))))
(defun byte-compile-autoload (form)