No subject


Tue Jun 29 11:12:15 PDT 2010


allowed.  ATI seems to agree, though nVidia allows it without warning.

---

 src/glsl/ast_to_hir.cpp |   14 +++++++++++---
 1 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/src/glsl/ast_to_hir.cpp b/src/glsl/ast_to_hir.cpp
index 33eb275..4522864 100644
--- a/src/glsl/ast_to_hir.cpp
+++ b/src/glsl/ast_to_hir.cpp
@@ -2151,9 +2151,17 @@ ast_jump_statement::hir(exec_list *instructions,
 	    opt_return_value->hir(instructions, state);
 	 assert(ret != NULL);
 
-	 /* FINISHME: Make sure the type of the return value matches the return
-	  * FINISHME: type of the enclosing function.
-	  */
+	 /* Implicit conversions are not allowed for return values. */
+	 if (state->current_function->return_type != ret->type) {
+	    YYLTYPE loc = this->get_location();
+
+	    _mesa_glsl_error(& loc, state,
+			     "`return' with wrong type %s, in function `%s' "
+			     "returning %s",
+			     ret->type->name,
+			     state->current_function->function_name(),
+			     state->current_function->return_type->name);
+	 }
 
 	 inst = new(ctx) ir_return(ret);
       } else {



More information about the mesa-commit mailing list