We need to end the basic block after the ##prologue in the dispatch branch so that the GC check can go after the prologue
parent
f53e9c654c
commit
5b7d40d9b4
|
@ -171,6 +171,7 @@ M: #if emit-node
|
||||||
[
|
[
|
||||||
V{ } clone node-stack set
|
V{ } clone node-stack set
|
||||||
##prologue
|
##prologue
|
||||||
|
begin-basic-block
|
||||||
emit-nodes
|
emit-nodes
|
||||||
basic-block get [
|
basic-block get [
|
||||||
##epilogue
|
##epilogue
|
||||||
|
|
|
@ -219,3 +219,14 @@ TUPLE: my-tuple ;
|
||||||
: bad-value-bug ( a -- b ) [ 3 ] [ 3 ] if f <array> ;
|
: bad-value-bug ( a -- b ) [ 3 ] [ 3 ] if f <array> ;
|
||||||
|
|
||||||
[ { f f f } ] [ t bad-value-bug ] unit-test
|
[ { f f f } ] [ t bad-value-bug ] unit-test
|
||||||
|
|
||||||
|
! PowerPC regression
|
||||||
|
TUPLE: id obj ;
|
||||||
|
|
||||||
|
: (gc-check-bug) ( a b -- c )
|
||||||
|
{ [ id boa ] [ id boa ] } dispatch ;
|
||||||
|
|
||||||
|
: gc-check-bug ( -- )
|
||||||
|
10000000 [ "hi" 0 (gc-check-bug) drop ] times ;
|
||||||
|
|
||||||
|
[ ] [ gc-check-bug ] unit-test
|
||||||
|
|
Loading…
Reference in New Issue