summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2024-09-26 12:46:01 +0200
committerRémi Verschelde <rverschelde@gmail.com>2024-09-26 12:46:01 +0200
commitb64b464ba72ae54f6a1b90e403c6dfa2a7ccede6 (patch)
treef91963c63d52a22a51415472177cd3e120b5ccbb
parent8493a39e912f91b375119d1d417f1180acca2113 (diff)
parent3828d45e31697e2d6b8d411fbca310b7f57cbe35 (diff)
downloadredot-engine-b64b464ba72ae54f6a1b90e403c6dfa2a7ccede6.tar.gz
Merge pull request #97481 from Chaosus/shader_fix_void_return
Fix shader crash when return a void function call
-rw-r--r--servers/rendering/shader_language.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/servers/rendering/shader_language.cpp b/servers/rendering/shader_language.cpp
index 14bd3841df..879a83f519 100644
--- a/servers/rendering/shader_language.cpp
+++ b/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