Repair bitwise-arithmetic-shift/ash on bad first arguments.

Fixes 0b0777912b1aa80.

original commit: d1a82e712c9c4645c1d790162827ad4e5d8c9f1d
This commit is contained in:
Sam Tobin-Hochstadt 2020-01-03 11:42:05 -05:00
parent 7e647535b4
commit e039b19653

View File

@ -2411,7 +2411,7 @@
(let () (let ()
(define (try-fold-ash-op op ctxt x y) (define (try-fold-ash-op op ctxt x y)
(let ([xval (nanopass-case (Lsrc Expr) (result-exp (value-visit-operand! x)) (let ([xval (nanopass-case (Lsrc Expr) (result-exp (value-visit-operand! x))
[(quote ,d) (and (exact? d) (integer? d) d)] [(quote ,d) (and (integer? d) (exact? d) d)]
[else #f])] [else #f])]
[yval (nanopass-case (Lsrc Expr) (result-exp (value-visit-operand! y)) [yval (nanopass-case (Lsrc Expr) (result-exp (value-visit-operand! y))
[(quote ,d) (and (fixnum? d) (fx< -1000 d 1000) d)] [(quote ,d) (and (fixnum? d) (fx< -1000 d 1000) d)]