On 14 August 2015 at 13:49, Kai Wasserbäch <k...@dev.carbon-project.org> wrote: > Fixes a crash in Piglit's > spec@arb_shader_subroutine@lin...@no-mutual-recursion.vert for me. > > Signed-off-by: Kai Wasserbäch <k...@dev.carbon-project.org> > --- > > Hey everyone, > I ran the Piglit quick test suite afterwards and haven't observed any > regressions over my previous quick run, but the crash went away. The test > itself passes now! Instead of > > | Program received signal SIGSEGV, Segmentation fault. > | (anonymous namespace)::lower_subroutine_visitor::visit_leave > (this=0x7fffffffdab0, ir=0xb1af58) at > ../../../../src/glsl/lower_subroutine.cpp:102 > > I'm seeing the (expected) > > | Failed to link: error: function `void impl_b(int)' has static recursion. > | error: function `void impl_a(int)' has static recursion. > | > | Failed to link vertex shader > <PIGLIT_SRC_DIR>/tests/spec/arb_shader_subroutine/linker/no-mutual-recursion.vert: > | PIGLIT: {"result": "pass" } > > The builds used in both runs have been done in a clean pbuilder chroot (the > same for both builds). Ie. there weren't any other differences between the two > Piglit runs besides the addition of the patch in the latest Mesa build. > > If you accept this patch, please commit it for me, as I don't have commit > access. > > Thanks, > Kai > > > src/glsl/lower_subroutine.cpp | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/src/glsl/lower_subroutine.cpp b/src/glsl/lower_subroutine.cpp > index b29912a..c1aed61 100644 > --- a/src/glsl/lower_subroutine.cpp > +++ b/src/glsl/lower_subroutine.cpp > @@ -98,7 +98,7 @@ lower_subroutine_visitor::visit_leave(ir_call *ir) > else > last_branch = if_tree(equal(subr_to_int(var), lc), new_call, > last_branch); > > - if (s > 0) > + if (return_deref && s > 0) > return_deref = return_deref->clone(mem_ctx, NULL); > } > if (last_branch) Can anyone take a look at this simple one-liner ? Afaics Dave added the pass earlier in 10.7-devel.
Thanks Emil _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev