Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
abcl
abcl
Commits
d60ee7b1
Commit
d60ee7b1
authored
Aug 20, 2011
by
ehuelsmann@1c010e3e-69d0-11dd-93a8-456734b0d56f
Browse files
Fix MULTIPLE-VALUE-PROG1.10 -- compiled mode.
parent
417a76a1
Changes
1
Hide whitespace changes
Inline
Side-by-side
src/org/armedbear/lisp/compiler-pass2.lisp
View file @
d60ee7b1
...
...
@@ -3005,6 +3005,14 @@ given a specific common representation.")
(
emit-push-current-thread
)
(
emit-getfield
+lisp-thread+
"_values"
+lisp-object-array+
)
(
astore
values-register
)
;; we need to clear the values again:
;; some parts will consider a non-null _values array
;; by itself a legitimate return value (multiple values)
;; however, if we have a non-local return after the previous form
;; set the values array, other code may pick up the values instead
;; of the actual return code. (Fixes MULTIPLE-VALUE-PROG1.10)
(
emit-clear-values
)
(
compile-progn-body
subforms
nil
nil
)
;; Restore multiple values returned by first subform.
(
emit-push-current-thread
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment