summaryrefslogtreecommitdiffstats
path: root/source
diff options
context:
space:
mode:
authorMukund Keshava <mkeshava@nvidia.com>2025-02-19 18:19:10 +0530
committerGitHub <noreply@github.com>2025-02-19 12:49:10 +0000
commit12d09b5a6cb9e921aace1bec484c76244e9afa94 (patch)
tree9775acd9fdf8edf78ead04c4c8936723f175cd97 /source
parent7315b33cf8dbf7759b05ff47612478b71238fa19 (diff)
Fix zero size array handling in slangc (#6399)
* Fix zero size array handling in slangc Fixes #2890 1. Fix zero size array handling in slangc 2. Add new zero size array diagnostic test. * format code * fix review comments --------- Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com> Co-authored-by: Ellie Hermaszewska <ellieh@nvidia.com>
Diffstat (limited to 'source')
-rw-r--r--source/slang/slang-check-expr.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/source/slang/slang-check-expr.cpp b/source/slang/slang-check-expr.cpp
index 7d4fbdf4c..1fb2b336f 100644
--- a/source/slang/slang-check-expr.cpp
+++ b/source/slang/slang-check-expr.cpp
@@ -2378,6 +2378,18 @@ Expr* SemanticsExprVisitor::visitIndexExpr(IndexExpr* subscriptExpr)
IntegerConstantExpressionCoercionType::AnyInteger,
nullptr,
ConstantFoldingKind::LinkTime);
+
+ // Validate that array size is greater than zero
+ if (auto constElementCount = as<ConstantIntVal>(elementCount))
+ {
+ if (constElementCount->getValue() <= 0)
+ {
+ getSink()->diagnose(
+ subscriptExpr->indexExprs[0],
+ Diagnostics::invalidArraySize);
+ return CreateErrorExpr(subscriptExpr);
+ }
+ }
}
else if (subscriptExpr->indexExprs.getCount() != 0)
{