diff --git a/pkgs/racket-test-core/tests/racket/optimize.rktl b/pkgs/racket-test-core/tests/racket/optimize.rktl index 2fc0dc291a..76900e6945 100644 --- a/pkgs/racket-test-core/tests/racket/optimize.rktl +++ b/pkgs/racket-test-core/tests/racket/optimize.rktl @@ -5759,6 +5759,12 @@ (parameterize ([read-accept-compiled #t]) (void (read (open-input-bytes (get-output-bytes o)))))) +;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Check for an optimizer regresssion + +(err/rt-test (+ (let-values (((x y) (let-values ((() 9)) 2))) x) (error)) + exn:fail?) + ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (report-errs) diff --git a/racket/src/racket/src/resolve.c b/racket/src/racket/src/resolve.c index 55e63c7a51..a04b0f46db 100644 --- a/racket/src/racket/src/resolve.c +++ b/racket/src/racket/src/resolve.c @@ -512,7 +512,7 @@ static Scheme_Object *look_for_letv_change(Scheme_Sequence *s) v = s->array[i]; if (SAME_TYPE(SCHEME_TYPE(v), scheme_let_value_type)) { Scheme_Let_Value *lv = (Scheme_Let_Value *)v; - if (scheme_omittable_expr(lv->body, 1, -1, 0, NULL, NULL)) { + if (scheme_omittable_expr(lv->body, 1, -1, OMITTABLE_RESOLVED, NULL, NULL)) { int esize = s->count - (i + 1); int nsize = i + 1; Scheme_Object *nv, *ev;