From: Christophe R. <cr...@us...> - 2005-08-15 17:57:00
|
Update of /cvsroot/sbcl/sbcl/tests In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24864/tests Modified Files: clos.impure.lisp Log Message: 0.9.3.53: Fix a "bug" (difficult to tell if it's really a bug, but if it isn't we shouldn't be emitting a CONSTANT-MODIFIED warning on it) in the ctor MAKE-INSTANCE optimization. ... we can't do `(setf (cdr ',place) ...) any more, so instead wrap another function around it and close over the locations. ... test case (related to CLASS-13.1 from PFD ansi-tests). Index: clos.impure.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/tests/clos.impure.lisp,v retrieving revision 1.68 retrieving revision 1.69 diff -u -d -r1.68 -r1.69 --- clos.impure.lisp 14 Jul 2005 16:30:43 -0000 1.68 +++ clos.impure.lisp 15 Aug 2005 17:56:53 -0000 1.69 @@ -1169,5 +1169,14 @@ (assert (null (r-c/c-m-1-gf))) +(handler-bind ((warning #'error)) + (eval '(defclass class-for-ctor/class-slot () + ((class-slot :initarg :class-slot :allocation :class)))) + (eval '(let ((c1 (make-instance 'class-for-ctor/class-slot)) + (c2 (make-instance 'class-for-ctor/class-slot :class-slot 1))) + (assert (equal (list (slot-value c1 'class-slot) + (slot-value c2 'class-slot)) + (list 1 1)))))) + ;;;; success (sb-ext:quit :unix-status 104) |