[Mesa-dev] [PATCH 06/11] nir/cf: Fix unlink_block_successors to actually unlink the second one.

Kenneth Graunke kenneth at whitecape.org
Tue Sep 22 20:01:21 PDT 2015


Calling unlink_blocks(block, block->successors[0]) will successfully
unlink the first successor, but then will shift block->successors[1]
down to block->successor[0].  So the successors[1] != NULL check will
always fail.

Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
Reviewed-by: Connor Abbott <cwabbott0 at gmail.com>
---
 src/glsl/nir/nir_control_flow.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

***UNCHANGED SINCE THE FIRST SEND***

diff --git a/src/glsl/nir/nir_control_flow.c b/src/glsl/nir/nir_control_flow.c
index a59add5..e027766 100644
--- a/src/glsl/nir/nir_control_flow.c
+++ b/src/glsl/nir/nir_control_flow.c
@@ -99,10 +99,10 @@ unlink_blocks(nir_block *pred, nir_block *succ)
 static void
 unlink_block_successors(nir_block *block)
 {
-   if (block->successors[0] != NULL)
-      unlink_blocks(block, block->successors[0]);
    if (block->successors[1] != NULL)
       unlink_blocks(block, block->successors[1]);
+   if (block->successors[0] != NULL)
+      unlink_blocks(block, block->successors[0]);
 }
 
 static void
-- 
2.5.3



More information about the mesa-dev mailing list