(lp#1189146)
* bug fix: undefined function errors are now properly reported on PPC and MIPS.
(regression since 1.1.9)
+ * bug fix: (funcall (function X junk)) didn't causes an error when X had a
+ compiler macro.
+ Patch by Douglas Katzman.
changes in sbcl-1.1.10 relative to sbcl-1.1.9:
* enhancement: ASDF has been updated to 3.0.2.
(defun find-compiler-macro (opname form)
(if (eq opname 'funcall)
(let ((fun-form (cadr form)))
- (cond ((and (consp fun-form) (eq 'function (car fun-form)))
+ (cond ((and (consp fun-form) (eq 'function (car fun-form))
+ (not (cddr fun-form)))
(let ((real-fun (cadr fun-form)))
(if (legal-fun-name-p real-fun)
(values (sb!xc:compiler-macro-function real-fun *lexenv*)
(compile nil `(lambda (x) (cmacro-with-tricky-key x 42)))
(assert (and (not warn) (not fail)))
(assert (string= "fun=42" (funcall fun 'tricky-key)))))
+
+(defun test-function-983 (x) x)
+(define-compiler-macro test-function-983 (x) x)
+
+(with-test (:name funcall-compiler-macro)
+ (assert
+ (handler-case
+ (compile nil
+ `(lambda ()
+ (funcall (function test-function-983 junk) 1)))
+ (sb-c:compiler-error () t)
+ (:no-error () nil))))
\f
;;;; tests not in the problem domain, but of the consistency of the
;;;; compiler machinery itself