summaryrefslogtreecommitdiffstats
path: root/source/slang/slang-check-modifier.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/slang/slang-check-modifier.cpp')
-rw-r--r--source/slang/slang-check-modifier.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/source/slang/slang-check-modifier.cpp b/source/slang/slang-check-modifier.cpp
index 56d905063..b8ff1a116 100644
--- a/source/slang/slang-check-modifier.cpp
+++ b/source/slang/slang-check-modifier.cpp
@@ -212,10 +212,14 @@ namespace Slang
attrDecl->nameAndLoc.loc = structDecl->nameAndLoc.loc;
attrDecl->loc = structDecl->loc;
- AttributeTargetModifier* targetModifier = m_astBuilder->create<AttributeTargetModifier>();
- targetModifier->syntaxClass = attrUsageAttr->targetSyntaxClass;
- targetModifier->loc = attrUsageAttr->loc;
- addModifier(attrDecl, targetModifier);
+ while(attrUsageAttr)
+ {
+ AttributeTargetModifier* targetModifier = m_astBuilder->create<AttributeTargetModifier>();
+ targetModifier->syntaxClass = attrUsageAttr->targetSyntaxClass;
+ targetModifier->loc = attrUsageAttr->loc;
+ addModifier(attrDecl, targetModifier);
+ attrUsageAttr = as<AttributeUsageAttribute>(attrUsageAttr->next);
+ }
// Every attribute declaration is associated with the type
// of syntax nodes it constructs (via reflection/RTTI).