X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Fcompiler.pure.lisp;h=45c22e86f0b2ca76cc13c6f55fc7caff0a1a9ca5;hb=c3699db2053ff3b5ac6a98d4431c3789496002d8;hp=0b07cfc7a30312e11c4c74a63a5af81c246e69a1;hpb=d18903c82a4856d5a65549b2913c0ee098c34f7e;p=sbcl.git diff --git a/tests/compiler.pure.lisp b/tests/compiler.pure.lisp index 0b07cfc..45c22e8 100644 --- a/tests/compiler.pure.lisp +++ b/tests/compiler.pure.lisp @@ -940,3 +940,29 @@ -32326608)))) 1 2 3) -32326608)) + +;;; MISC.177, 182: IR2 copy propagation missed a hidden write to a +;;; local lambda argument +(assert + (equal + (funcall + (compile nil + '(lambda (a b c) + (declare (type (integer 804561 7640697) a)) + (declare (type (integer -1 10441401) b)) + (declare (type (integer -864634669 55189745) c)) + (declare (ignorable a b c)) + (declare (optimize (speed 3))) + (declare (optimize (safety 1))) + (declare (optimize (debug 1))) + (flet ((%f11 + (f11-1 f11-2) + (labels ((%f4 () (round 200048 (max 99 c)))) + (logand + f11-1 + (labels ((%f3 (f3-1) -162967612)) + (%f3 (let* ((v8 (%f4))) + (setq f11-1 (%f4))))))))) + (%f11 -120429363 (%f11 62362 b))))) + 6714367 9645616 -637681868) + -264223548))