projects
/
sbcl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
1.0.29.6: regression in DIRECTORY when matching directory patterns
[sbcl.git]
/
src
/
compiler
/
ir1util.lisp
diff --git
a/src/compiler/ir1util.lisp
b/src/compiler/ir1util.lisp
index
d79da6b
..
19e0adb
100644
(file)
--- a/
src/compiler/ir1util.lisp
+++ b/
src/compiler/ir1util.lisp
@@
-1637,7
+1637,8
@@
is :ANY, the function name is not checked."
(all (combination-args call))
(new-args (reverse (subseq all 0 n-positional)))
(key-args (subseq all n-positional))
(all (combination-args call))
(new-args (reverse (subseq all 0 n-positional)))
(key-args (subseq all n-positional))
- (parameters nil))
+ (parameters nil)
+ (flushed-keys nil))
(loop while key-args
do (let* ((key (pop key-args))
(val (pop key-args))
(loop while key-args
do (let* ((key (pop key-args))
(val (pop key-args))
@@
-1647,10
+1648,12
@@
is :ANY, the function name is not checked."
(spec (or (assoc keyword specs :test #'eq)
(give-up-ir1-transform))))
(push val new-args)
(spec (or (assoc keyword specs :test #'eq)
(give-up-ir1-transform))))
(push val new-args)
- (flush-dest key)
+ (push key flushed-keys)
(push (second spec) parameters)
;; In case of duplicate keys.
(setf (second spec) (gensym))))
(push (second spec) parameters)
;; In case of duplicate keys.
(setf (second spec) (gensym))))
+ (dolist (key flushed-keys)
+ (flush-dest key))
(setf (combination-args call) (reverse new-args))
(reverse parameters)))
(setf (combination-args call) (reverse new-args))
(reverse parameters)))