From 2fd94d55731146d3c1ce4097a664df2f16fe410e Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Tue, 8 Jan 2019 18:07:31 -0700 Subject: [PATCH] repair to cp0 changes for single-value checking original commit: 1d0d02a1fd01629a2b72b82e95b60084f5bff4fb --- mats/cp0.ms | 5 ++++- s/cp0.ss | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/mats/cp0.ms b/mats/cp0.ms index 255911553f..be4a8f0d46 100644 --- a/mats/cp0.ms +++ b/mats/cp0.ms @@ -2815,5 +2815,8 @@ (fields x y)) (if (make-posn 0 ,e) ,v 'other))) posn-decl-expanded) - + (parameterize ([enable-cp0 #t] [#%$suppress-primitive-inlining #f]) + (equivalent-expansion? + (expand/optimize '(let ([g1 (begin (unknown) (void))]) 10)) + '(begin (unknown) 10))) ) diff --git a/s/cp0.ss b/s/cp0.ss index 0de44ec923..68dc4e99d4 100644 --- a/s/cp0.ss +++ b/s/cp0.ss @@ -737,7 +737,10 @@ (cond [(and (eq? ctxt 'effect) (simple? e2)) e1] - [(and (eq? ctxt 'ignored) (simple1? e2)) + [(and (eq? ctxt 'ignored) (simple1? e2) + ;; don't move e1 into a single-value + ;; position unless that's ok + (single-valued? e1)) e1] [else (let ([e1 (nanopass-case (Lsrc Expr) e1