From 6bb32aa976494466bd6303f8ae6e348b297edb44 Mon Sep 17 00:00:00 2001 From: Sai Praveen Bangaru <31557731+saipraveenb25@users.noreply.github.com> Date: Tue, 27 Aug 2024 21:13:00 -0400 Subject: Adds a warning for using `[PreferRecompute]` on methods that may contain side effects (#4707) * Adds a warning for using prefer-recompute on methods that contain side effects * Rename `SideEffects` -> `SideEffectBehavior` --------- Co-authored-by: Yong He --- source/slang/slang-check-modifier.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'source/slang/slang-check-modifier.cpp') diff --git a/source/slang/slang-check-modifier.cpp b/source/slang/slang-check-modifier.cpp index 483ff0e18..705d0bb3b 100644 --- a/source/slang/slang-check-modifier.cpp +++ b/source/slang/slang-check-modifier.cpp @@ -842,6 +842,16 @@ namespace Slang else if (auto primalOfAttr = as(attr)) primalOfAttr->funcExpr = attr->args[0]; } + else if (auto preferRecomputeAttr = as(attr)) + { + SLANG_ASSERT(attr->args.getCount() == 1); + SLANG_ASSERT(as(attrTarget)); + + auto val = checkConstantIntVal(attr->args[0]); + if (!val) return false; + + preferRecomputeAttr->sideEffectBehavior = (PreferRecomputeAttribute::SideEffectBehavior) val->getValue(); + } else if (auto comInterfaceAttr = as(attr)) { SLANG_ASSERT(attr->args.getCount() == 1); -- cgit v1.2.3