diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2024-09-26 12:46:01 +0200 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2024-09-26 12:46:01 +0200 |
commit | b64b464ba72ae54f6a1b90e403c6dfa2a7ccede6 (patch) | |
tree | f91963c63d52a22a51415472177cd3e120b5ccbb | |
parent | 8493a39e912f91b375119d1d417f1180acca2113 (diff) | |
parent | 3828d45e31697e2d6b8d411fbca310b7f57cbe35 (diff) | |
download | redot-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.cpp | 5 |
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 |