summaryrefslogtreecommitdiff
path: root/source/slang/slang-emit-spirv.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/slang/slang-emit-spirv.cpp')
-rw-r--r--source/slang/slang-emit-spirv.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/source/slang/slang-emit-spirv.cpp b/source/slang/slang-emit-spirv.cpp
index 92fa507e0..63ebfcf6e 100644
--- a/source/slang/slang-emit-spirv.cpp
+++ b/source/slang/slang-emit-spirv.cpp
@@ -7964,6 +7964,8 @@ SlangResult emitSPIRVFromIR(
{
spirvOut.clear();
+ bool symbolsEmitted = false;
+
auto sink = codeGenContext->getSink();
#if 0
@@ -8008,6 +8010,7 @@ SlangResult emitSPIRVFromIR(
if (shouldPreserveParams && as<IRGlobalParam>(inst))
{
context.ensureInst(inst);
+ symbolsEmitted = true;
}
if (generateWholeProgram)
{
@@ -8016,6 +8019,7 @@ SlangResult emitSPIRVFromIR(
if (func->findDecoration<IRDownstreamModuleExportDecoration>())
{
context.ensureInst(inst);
+ symbolsEmitted = true;
}
}
}
@@ -8046,8 +8050,14 @@ SlangResult emitSPIRVFromIR(
for (auto irEntryPoint : irEntryPoints)
{
context.ensureInst(irEntryPoint);
+ symbolsEmitted = true;
}
+ if (!symbolsEmitted)
+ {
+ sink->diagnose(irModule->getModuleInst(), Diagnostics::outputSpvIsEmpty);
+ return SLANG_FAIL;
+ }
// Move forward delcared pointers to the end.
do