X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Fdefstruct.impure.lisp;h=f1b06b56ab9ae5617037c2a2b3c4912e6e3d5ee7;hb=5cd0fc84df83d1b3321b7fc969843207721de429;hp=a23302f0fc4b3f5032ceeaeb86fe09f46d3c4396;hpb=beccf6c476f5cf2ef0bd839866527a46ec88d626;p=sbcl.git diff --git a/tests/defstruct.impure.lisp b/tests/defstruct.impure.lisp index a23302f..f1b06b5 100644 --- a/tests/defstruct.impure.lisp +++ b/tests/defstruct.impure.lisp @@ -551,6 +551,28 @@ (warning (c) (error "shouldn't warn just from macroexpansion here")))) +;;; bug 318 symptom no 1. (rest not fixed yet) +(catch :ok + (handler-bind ((error (lambda (c) + ;; Used to cause stack-exhaustion + (unless (typep c 'storege-condition) + (throw :ok))))) + (eval '(progn + (defstruct foo a) + (setf (find-class 'foo) nil) + (defstruct foo slot-1))))) + +;;; bug 348, evaluation order of slot writer arguments. Fixed by Gabor +;;; Melis. +(defstruct bug-348 x) + +(assert (eql -1 (let ((i (eval '-2)) + (x (make-bug-348))) + (funcall #'(setf bug-348-x) + (incf i) + (aref (vector x) (incf i))) + (bug-348-x x)))) + ;;; success (format t "~&/returning success~%") (quit :unix-status 104)