summaryrefslogtreecommitdiff
path: root/source/slang/slang-ir-metadata.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/slang/slang-ir-metadata.cpp')
-rw-r--r--source/slang/slang-ir-metadata.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/source/slang/slang-ir-metadata.cpp b/source/slang/slang-ir-metadata.cpp
index 641c272a2..030fde157 100644
--- a/source/slang/slang-ir-metadata.cpp
+++ b/source/slang/slang-ir-metadata.cpp
@@ -42,8 +42,18 @@ static void _insertBinding(List<ShaderBindingRange>& ranges, LayoutResourceKind
void collectMetadata(const IRModule* irModule, ArtifactPostEmitMetadata& outMetadata)
{
// Scan the instructions looking for global resource declarations
+ // and exported functions.
for (const auto& inst : irModule->getGlobalInsts())
{
+ if (auto func = as<IRFunc>(inst))
+ {
+ if (func->findDecoration<IRDownstreamModuleExportDecoration>())
+ {
+ auto name = func->findDecoration<IRExportDecoration>()->getMangledName();
+ outMetadata.m_exportedFunctionMangledNames.add(name);
+ }
+ }
+
auto param = as<IRGlobalParam>(inst);
if (!param) continue;