https://bugs.freedesktop.org/show_bug.cgi?id=62357
--- Comment #8 from Roland Scheidegger <srol...@vmware.com> --- Looks like we unconditionally return when we see a return not in a function. Some trivial attempt at fixing that seems to work but I'm not quite sure if it's right or if we need to do more. diff --git a/src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c b/src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c index 0dc26b5..e56bb62 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c +++ b/src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c @@ -348,7 +348,8 @@ static void lp_exec_mask_ret(struct lp_exec_mask *mask, int *pc) LLVMBuilderRef builder = mask->bld->gallivm->builder; LLVMValueRef exec_mask; - if (mask->call_stack_size == 0) { + if (mask->call_stack_size == 0 && + mask->cond_stack_size == 0) { /* returning from main() */ *pc = -1; return; I guess might also need to check loop_stack_size too (could have a loop which never executes). -- You are receiving this mail because: You are the assignee for the bug.
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev