summaryrefslogtreecommitdiffstats
path: root/source/slang/slang-check-modifier.cpp
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2024-12-11 13:34:54 -0800
committerGitHub <noreply@github.com>2024-12-11 13:34:54 -0800
commit941f07040a505f1f673c96da959bde839c629aba (patch)
treefe5cd3cd0a63919ad8971d32cd18e8161f9cbd99 /source/slang/slang-check-modifier.cpp
parente50aac13e2c161d672b137a62f6d66820d0f9ff1 (diff)
Fix attribute reflection. (#5823)
* Fix attribute reflection. * Fix. * Fix.
Diffstat (limited to 'source/slang/slang-check-modifier.cpp')
-rw-r--r--source/slang/slang-check-modifier.cpp15
1 files changed, 6 insertions, 9 deletions
diff --git a/source/slang/slang-check-modifier.cpp b/source/slang/slang-check-modifier.cpp
index aebfe3b96..05eb978bc 100644
--- a/source/slang/slang-check-modifier.cpp
+++ b/source/slang/slang-check-modifier.cpp
@@ -752,18 +752,15 @@ Modifier* SemanticsVisitor::validateAttribute(
{
auto& arg = attr->args[paramIndex];
bool typeChecked = false;
- if (auto basicType = as<BasicExpressionType>(paramDecl->getType()))
+ if (isValidCompileTimeConstantType(paramDecl->getType()))
{
- if (basicType->getBaseType() == BaseType::Int)
+ if (auto cint = checkConstantIntVal(arg))
{
- if (auto cint = checkConstantIntVal(arg))
- {
- for (Index ci = attr->intArgVals.getCount(); ci < paramIndex + 1; ci++)
- attr->intArgVals.add(nullptr);
- attr->intArgVals[(uint32_t)paramIndex] = cint;
- }
- typeChecked = true;
+ for (Index ci = attr->intArgVals.getCount(); ci < paramIndex + 1; ci++)
+ attr->intArgVals.add(nullptr);
+ attr->intArgVals[(uint32_t)paramIndex] = cint;
}
+ typeChecked = true;
}
if (!typeChecked)
{