nir/nir: Fix a bug in move_successors

The unlink_blocks function moves successors around to make sure that, if
there is a remaining successor, it is in the first successors slot and not
the second.  To fix this, we simply get both successors up front.

Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
This commit is contained in:
Jason Ekstrand 2014-11-07 18:25:08 -08:00
parent 2bd5a24a5e
commit dc4e660dfa

View file

@ -739,10 +739,11 @@ static void
move_successors(nir_block *source, nir_block *dest)
{
nir_block *succ1 = source->successors[0];
nir_block *succ2 = source->successors[1];
if (succ1)
unlink_blocks(source, succ1);
nir_block *succ2 = source->successors[1];
if (succ2)
unlink_blocks(source, succ2);