mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-03 03:28:09 +02:00
nir/cf: fix link_blocks() when there are no successors
When we insert a single basic block A into another basic block B, we will split B into C and D, insert A in the middle, and then splice together C, A, and D. When we splice together C and A, we need to move the successors of A into C -- except A has no successors, since it hasn't been inserted yet. So in move_successors(), we need to handle the case where the block whose successors are to be moved doesn't have any successors. Fixing link_blocks() here prevents a segfault and makes it work correctly. Signed-off-by: Connor Abbott <connor.w.abbott@intel.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
parent
6d028749ac
commit
6f5c81f86f
1 changed files with 2 additions and 1 deletions
|
|
@ -57,7 +57,8 @@ static void
|
|||
link_blocks(nir_block *pred, nir_block *succ1, nir_block *succ2)
|
||||
{
|
||||
pred->successors[0] = succ1;
|
||||
block_add_pred(succ1, pred);
|
||||
if (succ1 != NULL)
|
||||
block_add_pred(succ1, pred);
|
||||
|
||||
pred->successors[1] = succ2;
|
||||
if (succ2 != NULL)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue