Browse Source

Fix shader crash when return a void function call

Chaosus 10 months ago
parent
commit
3828d45e31
1 changed files with 5 additions and 0 deletions
  1. 5 0
      servers/rendering/shader_language.cpp

+ 5 - 0
servers/rendering/shader_language.cpp

@@ -8476,6 +8476,11 @@ Error ShaderLanguage::_parse_block(BlockNode *p_block, const FunctionInfo &p_fun
 					return ERR_PARSE_ERROR;
 				}
 			} else {
+				if (b->parent_function->return_type == TYPE_VOID) {
+					_set_error(vformat(RTR("'%s' function cannot return a value."), "void"));
+					return ERR_PARSE_ERROR;
+				}
+
 				_set_tkpos(pos); //rollback, wants expression
 
 #ifdef DEBUG_ENABLED