From 2285bd27abf63a460d7025b2e5579f67cdd2e6fb Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Wed, 19 Jun 2013 00:35:00 -0700 Subject: [PATCH] Check autoload's "type" argument correctly in bytecomp.el * lisp/emacs-lisp/bytecomp.el (byte-compile-file-form-autoload): Only eval autoloaded macros. (byte-compile-autoload): Only give the macro warning for macros. --- lisp/ChangeLog | 4 ++++ lisp/emacs-lisp/bytecomp.el | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 2886d0e00d4..b35035df729 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,9 @@ 2013-06-19 Glenn Morris + * emacs-lisp/bytecomp.el (byte-compile-file-form-autoload): + Only eval autoloaded macros. + (byte-compile-autoload): Only give the macro warning for macros. + * progmodes/cperl-mode.el (ps-bold-faces, ps-italic-faces) (ps-underlined-faces): Declare. diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el index 391401ae5d6..f4e79dc4886 100644 --- a/lisp/emacs-lisp/bytecomp.el +++ b/lisp/emacs-lisp/bytecomp.el @@ -2215,7 +2215,7 @@ list that represents a doc string reference. (and (let ((form form)) (while (if (setq form (cdr form)) (macroexp-const-p (car form)))) (null form)) ;Constants only - (eval (nth 5 form)) ;Macro + (memq (eval (nth 5 form)) '(t macro)) ;Macro (eval form)) ;Define the autoload. ;; Avoid undefined function warnings for the autoload. (when (and (consp (nth 1 form)) @@ -4187,7 +4187,7 @@ binding slots have been popped." (byte-compile-set-symbol-position 'autoload) (and (macroexp-const-p (nth 1 form)) (macroexp-const-p (nth 5 form)) - (eval (nth 5 form)) ; macro-p + (memq (eval (nth 5 form)) '(t macro)) ; macro-p (not (fboundp (eval (nth 1 form)))) (byte-compile-warn "The compiler ignores `autoload' except at top level. You should -- 2.39.2