diff options
Diffstat (limited to 'module/language/cps/effects-analysis.scm')
-rw-r--r-- | module/language/cps/effects-analysis.scm | 8 |
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))) |