compiler.cfg.instructions: forgot that ##box-displaced-alien needs a GC check; fixes segfault in benchmark.mandel
parent
f808f43ffb
commit
8f19f14c1f
|
@ -153,7 +153,12 @@ INSN: ##set-alien-double < ##alien-setter ;
|
|||
! Memory allocation
|
||||
INSN: ##allot < ##flushable size class temp ;
|
||||
|
||||
UNION: ##allocation ##allot ##box-float ##box-alien ##integer>bignum ;
|
||||
UNION: ##allocation
|
||||
##allot
|
||||
##box-float
|
||||
##box-alien
|
||||
##box-displaced-alien
|
||||
##integer>bignum ;
|
||||
|
||||
INSN: ##write-barrier < ##effect card# table ;
|
||||
|
||||
|
|
|
@ -401,4 +401,10 @@ cell 4 = [
|
|||
dup [ [ 1 fixnum+fast ] dip ] [ [ drop 1 ] dip ] if ;
|
||||
|
||||
[ 2 t ] [ 0 t global-dcn-bug-1 ] unit-test
|
||||
[ 1 f ] [ 0 f global-dcn-bug-1 ] unit-test
|
||||
[ 1 f ] [ 0 f global-dcn-bug-1 ] unit-test
|
||||
|
||||
! Forgot a GC check
|
||||
: missing-gc-check-1 ( a -- b ) { fixnum } declare <alien> ;
|
||||
: missing-gc-check-2 ( -- ) 10000000 [ missing-gc-check-1 drop ] each-integer ;
|
||||
|
||||
[ ] [ missing-gc-check-2 ] unit-test
|
Loading…
Reference in New Issue