From 39c9c1d494f6d8a42c6f701ef1db4f688fe1b310 Mon Sep 17 00:00:00 2001 From: Nikodemus Siivola Date: Fri, 10 Jun 2011 23:30:52 +0300 Subject: [PATCH] FMAKUNBOUND removes the MACRO-FUNCTION as well Fixes lp#795705. --- NEWS | 2 ++ src/compiler/info-functions.lisp | 1 + tests/compiler.impure.lisp | 8 ++++++++ 3 files changed, 11 insertions(+) diff --git a/NEWS b/NEWS index d5b693f..4e2611d 100644 --- a/NEWS +++ b/NEWS @@ -15,6 +15,8 @@ changes relative to sbcl-1.0.49: function with dynamic-extent &rest list. * bug fix: &optional and &key supplied-p arguments in DEFSTRUCT boa-construtors can be used to initialized structure slots. + * bug fix: FMAKUNBOUND removes the MACRO-FUNCTION, should one exist. + (lp#795705, regression) changes in sbcl-1.0.49 relative to sbcl-1.0.48: * minor incompatible change: WITH-LOCKED-HASH-TABLE no longer disables diff --git a/src/compiler/info-functions.lisp b/src/compiler/info-functions.lisp index e0c29bf..ea876b7 100644 --- a/src/compiler/info-functions.lisp +++ b/src/compiler/info-functions.lisp @@ -106,6 +106,7 @@ (frob :where-from :assumed) (frob :inlinep) (frob :kind) + (frob :macro-function) (frob :inline-expansion-designator) (frob :source-transform) (frob :structure-accessor) diff --git a/tests/compiler.impure.lisp b/tests/compiler.impure.lisp index 81c72bd..9c52b0f 100644 --- a/tests/compiler.impure.lisp +++ b/tests/compiler.impure.lisp @@ -1227,6 +1227,14 @@ (assert (search "INLINED-FUNCTION-IN-SOURCE-PATH" output)) ;; ...not the leaf. (assert (not (search "DEFINED-FUN" output))))) + +(defmacro bug-795705 () + t) + +(with-test (:name :bug-795705) + (assert (macro-function 'bug-795705)) + (fmakunbound 'bug-795705) + (assert (not (macro-function 'bug-795705)))) ;;;; tests not in the problem domain, but of the consistency of the ;;;; compiler machinery itself -- 1.7.10.4