diff options
| author | Yong He <yonghe@outlook.com> | 2023-09-03 12:56:31 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-09-03 12:56:31 -0700 |
| commit | 1d4b5b6fd2433a10cc7ab87626cb560f54b0acbb (patch) | |
| tree | 6196d519190720fd2968ac7d4b373e3c967d5fe6 /source/slang/slang-parser.cpp | |
| parent | 355bb4287861f96082751042f4e58ff3598b4e5e (diff) | |
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 <yhe@nvidia.com>
Diffstat (limited to 'source/slang/slang-parser.cpp')
| -rw-r--r-- | source/slang/slang-parser.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
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<ReturnValExpr>(); + expr->scope = parser->currentScope; + return expr; + } + static Expr* parseBoolLitExpr(Parser* parser, bool value) { BoolLiteralExpr* expr = parser->astBuilder->create<BoolLiteralExpr>(); @@ -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), |
