diff --git a/module/language/cps/dce.scm b/module/language/cps/dce.scm index bc8345d9b..8b0604624 100644 --- a/module/language/cps/dce.scm +++ b/module/language/cps/dce.scm @@ -89,7 +89,10 @@ sites." (($ $kreceive arity kargs) (values known (intset-add! unknown kargs))) (($ $kfun src meta self tail entry) - (values known (intset-add! unknown entry))) + (values known + (if entry + (intset-add! unknown entry) + unknown))) (($ $kclause arity body alt) (values known (intset-add! unknown body))) (($ $ktail) @@ -270,7 +273,7 @@ sites." (($ $kfun src meta self tail entry) (values live-labels (adjoin-vars - (or (cont-defs entry) '()) + (or (and entry (cont-defs entry)) '()) (if self (adjoin-var self live-vars) live-vars)))) (($ $ktail) (values live-labels live-vars)))) diff --git a/module/language/cps/simplify.scm b/module/language/cps/simplify.scm index 20c1279b9..ef7b86f79 100644 --- a/module/language/cps/simplify.scm +++ b/module/language/cps/simplify.scm @@ -178,7 +178,7 @@ (($ $kclause arity body alt) ($kclause ,arity (subst body) alt)) (($ $kfun src meta self tail entry) - ($kfun src meta self tail (subst entry))) + ($kfun src meta self tail (and entry (subst entry)))) (_ ,cont)))) conts)))