diff options
| -rw-r--r-- | source/slang/slang-check-decl.cpp | 1 | ||||
| -rw-r--r-- | source/slang/slang-check-expr.cpp | 1 | ||||
| -rw-r--r-- | tests/compute/groupshared.slang | 4 |
3 files changed, 5 insertions, 1 deletions
diff --git a/source/slang/slang-check-decl.cpp b/source/slang/slang-check-decl.cpp index e7c2a5853..8c11e538d 100644 --- a/source/slang/slang-check-decl.cpp +++ b/source/slang/slang-check-decl.cpp @@ -1017,6 +1017,7 @@ namespace Slang // We need to ensure that any variable doesn't introduce // a constant with a circular definition. // + varDecl->setCheckState(DeclCheckState::Checked); _validateCircularVarDefinition(varDecl); } else diff --git a/source/slang/slang-check-expr.cpp b/source/slang/slang-check-expr.cpp index 39fd7d1dd..47f5436c5 100644 --- a/source/slang/slang-check-expr.cpp +++ b/source/slang/slang-check-expr.cpp @@ -858,6 +858,7 @@ namespace Slang if(!initExpr) return nullptr; + ensureDecl(declRef.decl, DeclCheckState::Checked); ConstantFoldingCircularityInfo newCircularityInfo(decl, circularityInfo); return tryConstantFoldExpr(initExpr, &newCircularityInfo); } diff --git a/tests/compute/groupshared.slang b/tests/compute/groupshared.slang index 2ebf325ab..ec7e055c5 100644 --- a/tests/compute/groupshared.slang +++ b/tests/compute/groupshared.slang @@ -8,7 +8,9 @@ //TEST_INPUT:ubuffer(data=[0 0 0 0], stride=4):out, name=gBuffer RWStructuredBuffer<int> gBuffer; -#define THREAD_COUNT 4 +static const int A = 4; +static const int B = 1; +static const int THREAD_COUNT = A * B; groupshared int gA[THREAD_COUNT]; int test(int val) |
