diff options
| author | Stefan Monnier <monnier@iro.umontreal.ca> | 2006-04-08 14:56:21 +0000 |
|---|---|---|
| committer | Stefan Monnier <monnier@iro.umontreal.ca> | 2006-04-08 14:56:21 +0000 |
| commit | e004f13c6c854f4dcd4d5da3379702ed12941d9c (patch) | |
| tree | 45567ad7c9b7b541c08ab2d54f180dc87044f959 /lisp/emacs-lisp/bytecomp.el | |
| parent | 31c3133a5006b112bfc5c4bef6e84569317534ab (diff) | |
| download | emacs-e004f13c6c854f4dcd4d5da3379702ed12941d9c.tar.gz | |
(byte-compile-form): Only call cl-byte-compile-compiler-macro if it exists.
Diffstat (limited to 'lisp/emacs-lisp/bytecomp.el')
| -rw-r--r-- | lisp/emacs-lisp/bytecomp.el | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el index 64b0a07332b..83620f3344f 100644 --- a/lisp/emacs-lisp/bytecomp.el +++ b/lisp/emacs-lisp/bytecomp.el @@ -2765,9 +2765,15 @@ If FORM is a lambda or a macro, byte-compile it as a function." (byte-compile-warn "`%s' used from Lisp code\n\ That command is designed for interactive use only" fn)) (if (and handler - (or (not (byte-compile-version-cond - byte-compile-compatibility)) - (not (get (get fn 'byte-opcode) 'emacs19-opcode)))) + ;; Make sure that function exists. This is important + ;; for CL compiler macros since the symbol may be + ;; `cl-byte-compile-compiler-macro' but if CL isn't + ;; loaded, this function doesn't exist. + (or (not (memq handler '(cl-byte-compile-compiler-macro))) + (fboundp handler)) + (not (and (byte-compile-version-cond + byte-compile-compatibility) + (get (get fn 'byte-opcode) 'emacs19-opcode)))) (funcall handler form) (when (memq 'callargs byte-compile-warnings) (if (memq fn '(custom-declare-group custom-declare-variable custom-declare-face)) |
