Module: Mesa Branch: master Commit: 6effdce92e89890f7276d406607241b7e372d1be URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=6effdce92e89890f7276d406607241b7e372d1be
Author: Dave Airlie <[email protected]> Date: Mon May 23 12:14:01 2016 +1000 glsl/ast: subroutineTypes can't be returned from functions. These types can't be returned. This fixes: GL43-CTS.shader_subroutine.subroutines_not_allowed_as_variables_constructors_and_argument_or_return_types for the return type case. Reviewed-by: Chris Forbes <[email protected]> Signed-off-by: Dave Airlie <[email protected]> --- src/compiler/glsl/ast_to_hir.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/compiler/glsl/ast_to_hir.cpp b/src/compiler/glsl/ast_to_hir.cpp index d6f9a75..ccacd26 100644 --- a/src/compiler/glsl/ast_to_hir.cpp +++ b/src/compiler/glsl/ast_to_hir.cpp @@ -5400,6 +5400,15 @@ ast_function::hir(exec_list *instructions, name); } + /**/ + if (return_type->is_subroutine()) { + YYLTYPE loc = this->get_location(); + _mesa_glsl_error(&loc, state, + "function `%s' return type can't be a subroutine type", + name); + } + + /* Create an ir_function if one doesn't already exist. */ f = state->symbols->get_function(name); if (f == NULL) { _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
