From ed8794d83d6f74aa6e3e4e667a958b217bbeb1c8 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Wed, 17 Jul 2019 16:43:32 -0600 Subject: [PATCH] fix check for arity wrapper and non-fixnum-width arg count Closes racket/racket#2746 original commit: 633cab4d38d8d22a0425f5554d80faba925dfdde --- mats/misc.ms | 1 + s/cpnanopass.ss | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/mats/misc.ms b/mats/misc.ms index bd1132a2e1..ee0dc47c0c 100644 --- a/mats/misc.ms +++ b/mats/misc.ms @@ -5303,6 +5303,7 @@ '(1 2 3)) (error? ((make-arity-wrapper-procedure (lambda args args) 1 #f) 1 2 3)) (error? ((make-arity-wrapper-procedure (lambda args args) (expt 2 100) #f) 1 2 3)) + (equal? (make-list 100 'ok) (apply (make-arity-wrapper-procedure (lambda args args) -1 #f) (make-list 100 'ok))) (equal? (procedure-arity-mask (make-wrapper-procedure (lambda args args) 1 #f)) 1) diff --git a/s/cpnanopass.ss b/s/cpnanopass.ss index b76bbf8f02..c6ef2e6b98 100644 --- a/s/cpnanopass.ss +++ b/s/cpnanopass.ss @@ -12882,7 +12882,7 @@ ,(fail))) ;; Arg count is > fixnum width; allow if the fixnum ;; is negative - (if ,(%inline u< ,%ts (immediate 0)) + (if ,(%inline < ,%ts (immediate 0)) ,e ,(fail))) ;; Arity is a bignum...