Reviewed-by: Connor Abbott <cwabbo...@gmail.com>

On Sat, Feb 13, 2016 at 9:14 PM, Jason Ekstrand <ja...@jlekstrand.net> wrote:
> This can happen if a function ends in a return instruction and you remove
> the return.
> ---
>  src/compiler/nir/nir_control_flow.c | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/src/compiler/nir/nir_control_flow.c 
> b/src/compiler/nir/nir_control_flow.c
> index 96395a4..ecd9cbd 100644
> --- a/src/compiler/nir/nir_control_flow.c
> +++ b/src/compiler/nir/nir_control_flow.c
> @@ -336,8 +336,7 @@ block_add_normal_succs(nir_block *block)
>           nir_block *next_block = nir_cf_node_as_block(next);
>
>           link_blocks(block, next_block, NULL);
> -      } else {
> -         assert(parent->type == nir_cf_node_loop);
> +      } else if (parent->type == nir_cf_node_loop) {
>           nir_loop *loop = nir_cf_node_as_loop(parent);
>
>           nir_cf_node *head = nir_loop_first_cf_node(loop);
> @@ -346,6 +345,10 @@ block_add_normal_succs(nir_block *block)
>
>           link_blocks(block, head_block, NULL);
>           insert_phi_undef(head_block, block);
> +      } else {
> +         assert(parent->type == nir_cf_node_function);
> +         nir_function_impl *impl = nir_cf_node_as_function(parent);
> +         link_blocks(block, impl->end_block, NULL);
>        }
>     } else {
>        nir_cf_node *next = nir_cf_node_next(&block->cf_node);
> --
> 2.5.0.400.gff86faf
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to