From 1d4b5b6fd2433a10cc7ab87626cb560f54b0acbb Mon Sep 17 00:00:00 2001 From: Yong He Date: Sun, 3 Sep 2023 12:56:31 -0700 Subject: Proper lowering of functiosn that returns NonCopyable values. (#3179) * Proper lowering of functiosn that returns NonCopyable values. * Fix tests. * Fix clang errors. * Fix. * Fix clang error. --------- Co-authored-by: Yong He --- source/slang/slang-parser.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'source/slang/slang-parser.cpp') diff --git a/source/slang/slang-parser.cpp b/source/slang/slang-parser.cpp index b270ba713..c3eba8c58 100644 --- a/source/slang/slang-parser.cpp +++ b/source/slang/slang-parser.cpp @@ -5299,6 +5299,13 @@ namespace Slang return expr; } + static NodeBase* parseReturnValExpr(Parser* parser, void* /*userData*/) + { + ReturnValExpr* expr = parser->astBuilder->create(); + expr->scope = parser->currentScope; + return expr; + } + static Expr* parseBoolLitExpr(Parser* parser, bool value) { BoolLiteralExpr* expr = parser->astBuilder->create(); @@ -7314,6 +7321,7 @@ namespace Slang _makeParseExpr("this", parseThisExpr), _makeParseExpr("true", parseTrueExpr), _makeParseExpr("false", parseFalseExpr), + _makeParseExpr("__return_val", parseReturnValExpr), _makeParseExpr("nullptr", parseNullPtrExpr), _makeParseExpr("none", parseNoneExpr), _makeParseExpr("try", parseTryExpr), -- cgit v1.2.3