summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp/bytecomp.el
diff options
context:
space:
mode:
authorGlenn Morris <rgm@gnu.org>2011-05-11 09:31:33 -0700
committerGlenn Morris <rgm@gnu.org>2011-05-11 09:31:33 -0700
commit7d3b9d44989043a707d936561613a4d5afcd47f4 (patch)
tree83e1a39e74afdbe6403c62285781d00c97abfe2f /lisp/emacs-lisp/bytecomp.el
parent15cc1ab1f0607f32ac76fa689df140cb1b3e27bd (diff)
downloademacs-7d3b9d44989043a707d936561613a4d5afcd47f4.tar.gz
emacs-7d3b9d44989043a707d936561613a4d5afcd47f4.tar.bz2
emacs-7d3b9d44989043a707d936561613a4d5afcd47f4.zip
bytecomp.el partial fix for bug#8646.
* lisp/emacs-lisp/bytecomp.el (byte-compile-arglist-warn): Handle symbol elements of byte-compile-initial-macro-environment.
Diffstat (limited to 'lisp/emacs-lisp/bytecomp.el')
-rw-r--r--lisp/emacs-lisp/bytecomp.el10
1 files changed, 9 insertions, 1 deletions
diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el
index 6ca8eed8ac6..e8d8993044c 100644
--- a/lisp/emacs-lisp/bytecomp.el
+++ b/lisp/emacs-lisp/bytecomp.el
@@ -1314,7 +1314,15 @@ extra args."
;; number of arguments.
(defun byte-compile-arglist-warn (form macrop)
(let* ((name (nth 1 form))
- (old (byte-compile-fdefinition name macrop)))
+ (old (byte-compile-fdefinition name macrop))
+ (initial (and macrop
+ (cdr (assq name
+ byte-compile-initial-macro-environment)))))
+ ;; Assumes an element of b-c-i-macro-env that is a symbol points
+ ;; to a defined function. (Bug#8646)
+ (and initial (symbolp initial)
+ (setq old (byte-compile-fdefinition initial nil)
+ initial 'yes))
(if (and old (not (eq old t)))
(progn
(and (eq 'macro (car-safe old))