summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorArielG-NV <159081215+ArielG-NV@users.noreply.github.com>2024-06-06 17:35:40 -0400
committerGitHub <noreply@github.com>2024-06-06 17:35:40 -0400
commita709e029df959efa9c0aa73f42cbe972fc26c5b6 (patch)
treeb691db389e0537e94bb9ceede756eebd97f1572a /tools
parentd301267ccba581dd7af9237d88418d9f7aeb39e1 (diff)
Update capability-generator-main.cpp (#4295)
fixes: #4293 Currently the code does: ``` void inclusiveJoinConjunction(CapabilitySharedContext& context, CapabilityConjunction& c, List<CapabilityConjunction>& toAddAfter) { if (c.isImpossible()) return; for (auto& conjunction : conjunctions) { if (c.implies(conjunction)) return; } ``` This is incorrect because it means that "if the set we are going to add is a super set of an element, don't add it". This does not make sense since inclusive join is meant to be 'additive' of super sets. Correct behavior code: ``` void inclusiveJoinConjunction(CapabilitySharedContext& context, CapabilityConjunction& c, List<CapabilityConjunction>& toAddAfter) { if (c.isImpossible()) return; for (auto& conjunction : conjunctions) { if (conjunction.implies(c)) return; } ``` This is correct behavior because it means that: "if the set we are going to add is a sub set of an element, ignore it". This makes sense since inclusive join can then add super sets in-place of subsets
Diffstat (limited to 'tools')
-rw-r--r--tools/slang-capability-generator/capability-generator-main.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/tools/slang-capability-generator/capability-generator-main.cpp b/tools/slang-capability-generator/capability-generator-main.cpp
index 6a299d91f..e31822e05 100644
--- a/tools/slang-capability-generator/capability-generator-main.cpp
+++ b/tools/slang-capability-generator/capability-generator-main.cpp
@@ -517,7 +517,7 @@ struct CapabilityDisjunction
return;
for (auto& conjunction : conjunctions)
{
- if (c.implies(conjunction))
+ if (conjunction.implies(c))
return;
}
for (Index i = 0; i < conjunctions.getCount();)