diff options
| author | Yong He <yonghe@outlook.com> | 2023-05-09 09:44:33 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-05-09 09:44:33 -0700 |
| commit | 38ed03a7203baacf36fca62539ac74fd45ed42d2 (patch) | |
| tree | 9648daee25c0a2aaac2fa8cd7d91908fd2aeef2f /source/slang/slang-lower-to-ir.cpp | |
| parent | 89a1234964a1927c4936a2758f72b7d6c9d0bc73 (diff) | |
Fix function side-effectness prop logic. (#2875)
Diffstat (limited to 'source/slang/slang-lower-to-ir.cpp')
| -rw-r--r-- | source/slang/slang-lower-to-ir.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/source/slang/slang-lower-to-ir.cpp b/source/slang/slang-lower-to-ir.cpp index de2d5aff2..ad338709d 100644 --- a/source/slang/slang-lower-to-ir.cpp +++ b/source/slang/slang-lower-to-ir.cpp @@ -7664,7 +7664,11 @@ struct DeclLoweringVisitor : DeclVisitor<DeclLoweringVisitor, LoweredValInfo> irAggType->moveToEnd(); addTargetIntrinsicDecorations(irAggType, decl); - + for (auto modifier : decl->modifiers) + { + if (as<NonCopyableTypeAttribute>(modifier)) + subBuilder->addNonCopyableTypeDecoration(irAggType); + } return LoweredValInfo::simple(finishOuterGenerics(subBuilder, irAggType, outerGeneric)); } @@ -8779,6 +8783,10 @@ struct DeclLoweringVisitor : DeclVisitor<DeclLoweringVisitor, LoweredValInfo> { getBuilder()->addSimpleDecoration<IRReadNoneDecoration>(irFunc); } + else if (as<NoSideEffectAttribute>(modifier)) + { + getBuilder()->addSimpleDecoration<IRNoSideEffectDecoration>(irFunc); + } else if (as<EarlyDepthStencilAttribute>(modifier)) { getBuilder()->addSimpleDecoration<IREarlyDepthStencilDecoration>(irFunc); |
