summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
Diffstat (limited to 'source')
-rw-r--r--source/slang/slang-lower-to-ir.cpp10
1 files changed, 5 insertions, 5 deletions
diff --git a/source/slang/slang-lower-to-ir.cpp b/source/slang/slang-lower-to-ir.cpp
index 52d24ff7d..8e1f85f8e 100644
--- a/source/slang/slang-lower-to-ir.cpp
+++ b/source/slang/slang-lower-to-ir.cpp
@@ -10756,6 +10756,11 @@ struct DeclLoweringVisitor : DeclVisitor<DeclLoweringVisitor, LoweredValInfo>
});
}
+ // Register the value now, to avoid any possible infinite recursion when lowering the body
+ // or attributes.
+ IRFunc* irFunc = subBuilder->createFunc();
+ context->setGlobalValue(decl, LoweredValInfo::simple(findOuterMostGeneric(irFunc)));
+
FuncDeclBaseTypeInfo info;
_lowerFuncDeclBaseTypeInfo(
subContext,
@@ -10763,15 +10768,10 @@ struct DeclLoweringVisitor : DeclVisitor<DeclLoweringVisitor, LoweredValInfo>
info);
// need to create an IR function here
-
- IRFunc* irFunc = subBuilder->createFunc();
addNameHint(subContext, irFunc, decl);
addLinkageDecoration(subContext, irFunc, decl);
maybeAddDebugLocationDecoration(subContext, irFunc);
- // Register the value now, to avoid any possible infinite recursion when lowering the body
- // or attributes.
- context->setGlobalValue(decl, LoweredValInfo::simple(findOuterMostGeneric(irFunc)));
// Always force inline diff setter accessor to prevent downstream compiler from complaining
// fields are not fully initialized for the first `inout` parameter.