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 |
