diff options
Diffstat (limited to 'source/slang/slang-ir-ssa.cpp')
| -rw-r--r-- | source/slang/slang-ir-ssa.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/source/slang/slang-ir-ssa.cpp b/source/slang/slang-ir-ssa.cpp index a496db3a8..05be164d4 100644 --- a/source/slang/slang-ir-ssa.cpp +++ b/source/slang/slang-ir-ssa.cpp @@ -318,10 +318,17 @@ IRInst* applyAccessChain( auto fieldKey = accessChain->getOperand(1); auto type = cast<IRPtrTypeBase>(accessChain->getDataType())->getValueType(); auto baseValue = applyAccessChain(context, builder, baseChain, leafVarValue); - return builder->emitFieldExtract( + auto extractInst = builder->emitFieldExtract( type, baseValue, fieldKey); + + for (auto decoration : accessChain->getDecorations()) + { + cloneDecoration(decoration, extractInst); + } + + return extractInst; } case kIROp_getElementPtr: |
