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 ;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -402,3 +402,9 @@ cell 4 = [
 | 
			
		|||
 | 
			
		||||
[ 2 t ] [ 0 t 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