summaryrefslogtreecommitdiff
path: root/module/language/cps/effects-analysis.scm
diff options
context:
space:
mode:
Diffstat (limited to 'module/language/cps/effects-analysis.scm')
-rw-r--r--module/language/cps/effects-analysis.scm8
1 files changed, 6 insertions, 2 deletions
diff --git a/module/language/cps/effects-analysis.scm b/module/language/cps/effects-analysis.scm
index 46a033e08..c82dc9d0e 100644
--- a/module/language/cps/effects-analysis.scm
+++ b/module/language/cps/effects-analysis.scm
@@ -483,8 +483,12 @@ the LABELS that are clobbered by the effects of LABEL."
((string-set! str idx cp) (&write-object &string))
((make-closure code) (&allocate &closure))
- ((closure-ref code) (&read-field &closure param))
- ((closure-set! code) (&write-field &closure param)))
+ ((closure-ref code) (match param
+ ((idx . nfree)
+ (&read-field &closure idx))))
+ ((closure-set! code) (match param
+ ((idx . nfree)
+ (&write-field &closure idx)))))
(define-primitive-effects* param
((allocate-words size) (&allocate (annotation->memory-kind param)))