aboutsummaryrefslogtreecommitdiffstats
path: root/src/glsl/ast_to_hir.cpp
diff options
context:
space:
mode:
authorEric Anholt <[email protected]>2010-08-23 13:26:52 -0700
committerEric Anholt <[email protected]>2010-08-23 13:27:36 -0700
commit76e96d74f49cc262ceaf2ed6c48d2f4ed21d219f (patch)
treed53c5b2d21b5abdb6183a1e7e1d1f070226d001b /src/glsl/ast_to_hir.cpp
parent6fb39f0fa2cad668fd6c49d0b739c33954a6946c (diff)
glsl: Cleanly fail when a function has an unknown return type.
Bug #29608.
Diffstat (limited to 'src/glsl/ast_to_hir.cpp')
-rw-r--r--src/glsl/ast_to_hir.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/glsl/ast_to_hir.cpp b/src/glsl/ast_to_hir.cpp
index 8e4c3299aa6..7ac24b06fe7 100644
--- a/src/glsl/ast_to_hir.cpp
+++ b/src/glsl/ast_to_hir.cpp
@@ -2138,7 +2138,13 @@ ast_function::hir(exec_list *instructions,
const glsl_type *return_type =
this->return_type->specifier->glsl_type(& return_type_name, state);
- assert(return_type != NULL);
+ if (!return_type) {
+ YYLTYPE loc = this->get_location();
+ _mesa_glsl_error(&loc, state,
+ "function `%s' has undeclared return type `%s'",
+ name, return_type_name);
+ return_type = glsl_type::error_type;
+ }
/* From page 56 (page 62 of the PDF) of the GLSL 1.30 spec:
* "No qualifier is allowed on the return type of a function."