Skip to content

Commit b749fc5

Browse files
committed
BC: fix flags for flbit-field
1 parent 7655857 commit b749fc5

File tree

2 files changed

+8
-2
lines changed

2 files changed

+8
-2
lines changed

pkgs/racket-test-core/tests/racket/flonum.rktl

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -443,6 +443,14 @@
443443
(test (bitwise-bit-field #x5B71B43544F260A6 i j)
444444
flbit-field 3.141579e132 i j)))
445445

446+
;; ----------------------------------------
447+
;; Regression test to make sure that flbit-field does not internally
448+
;; claim to produce a flonum
449+
(let ([f (black-box (lambda (v) (fixnum? (flbit-field v 52 63))))])
450+
(test #t f 1.0))
451+
(let ([f (black-box (lambda (v) (fixnum? (unsafe-flbit-field v 52 63))))])
452+
(test #t f 1.0))
453+
446454
;; ----------------------------------------
447455
;; Make sure `flvector` is not incorrectly constant-folded
448456

racket/src/bc/src/number.c

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1013,7 +1013,6 @@ void scheme_init_flfxnum_number(Scheme_Startup_Env *env)
10131013
scheme_addto_prim_instance("flsingle", p, env);
10141014

10151015
p = scheme_make_folding_prim(fl_bit_field, "flbit-field", 3, 3, 1);
1016-
SCHEME_PRIM_PROC_FLAGS(p) |= scheme_intern_prim_opt_flags(SCHEME_PRIM_PRODUCES_FLONUM);
10171016
scheme_addto_prim_instance("flbit-field", p, env);
10181017

10191018
p = scheme_make_folding_prim(fl_sin, "flsin", 1, 1, 1);
@@ -1608,7 +1607,6 @@ void scheme_init_unsafe_number(Scheme_Startup_Env *env)
16081607
scheme_addto_prim_instance("unsafe-flsingle", p, env);
16091608

16101609
p = scheme_make_folding_prim(unsafe_flbit_field, "unsafe-flbit-field", 3, 3, 1);
1611-
SCHEME_PRIM_PROC_FLAGS(p) |= scheme_intern_prim_opt_flags(SCHEME_PRIM_PRODUCES_FLONUM);
16121610
scheme_addto_prim_instance("unsafe-flbit-field", p, env);
16131611
}
16141612

0 commit comments

Comments
 (0)