summaryrefslogtreecommitdiff
path: root/source/slang/slang-ir-witness-table-wrapper.cpp
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2022-09-05 00:38:45 -0700
committerGitHub <noreply@github.com>2022-09-05 00:38:45 -0700
commitea0845285b0307d153a91d6f0a5010fc2d7219ed (patch)
treebf2d8f7258b2681deddf3391c551c5ff2b1a7918 /source/slang/slang-ir-witness-table-wrapper.cpp
parent2a869c105dcc23ede8f5e6e16b08261f45aa5aad (diff)
Multi parameter `__subscript` (#2392)
* Multi parameter `__subscript` * Fix. * Fix bugs. * Fix. Co-authored-by: Yong He <yhe@nvidia.com>
Diffstat (limited to 'source/slang/slang-ir-witness-table-wrapper.cpp')
-rw-r--r--source/slang/slang-ir-witness-table-wrapper.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/source/slang/slang-ir-witness-table-wrapper.cpp b/source/slang/slang-ir-witness-table-wrapper.cpp
index 1d84eee19..81527b89f 100644
--- a/source/slang/slang-ir-witness-table-wrapper.cpp
+++ b/source/slang/slang-ir-witness-table-wrapper.cpp
@@ -186,8 +186,13 @@ namespace Slang
// we can't consider this case a hard error.
//
auto concreteType = witnessTable->getConcreteType();
- if(!sharedContext->doesTypeFitInAnyValue(concreteType, interfaceType))
+ IRIntegerValue typeSize, sizeLimit;
+ if (!sharedContext->doesTypeFitInAnyValue(concreteType, interfaceType, &typeSize, &sizeLimit))
+ {
+ sharedContext->sink->diagnose(concreteType, Diagnostics::typeDoesNotFitAnyValueSize, concreteType);
+ sharedContext->sink->diagnose(concreteType, Diagnostics::typeAndLimit, concreteType, typeSize, sizeLimit);
return;
+ }
for (auto child : witnessTable->getChildren())
{