summaryrefslogtreecommitdiffstats
path: root/source/slang/slang.cpp
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2018-01-04 13:41:09 -0800
committerTim Foley <tfoleyNV@users.noreply.github.com>2018-01-04 13:41:09 -0800
commit3d435f7321c3f9241d33a0f7521573f21b548186 (patch)
tree3a4f2d21250f1dbad1ca9bf4668b566a6c87ea89 /source/slang/slang.cpp
parente90dfcfd6a0a6d92688012b1216c46c24965cfc0 (diff)
Bug fixes for Slang integration (#356)
* fix #353 * move validateEntryPoint to after all entrypoints has been checked * bug fix: DeclRefType::SubstituteImpl should change ioDiff * bug fix: generic resource usage should have count of 1 instead of 0. * update test case
Diffstat (limited to 'source/slang/slang.cpp')
-rw-r--r--source/slang/slang.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/source/slang/slang.cpp b/source/slang/slang.cpp
index 0b3e0ceb7..2ebf024e3 100644
--- a/source/slang/slang.cpp
+++ b/source/slang/slang.cpp
@@ -174,6 +174,8 @@ void CompileRequest::parseTranslationUnit(
}
}
+void validateEntryPoint(EntryPointRequest*);
+
void CompileRequest::checkAllTranslationUnits()
{
// Iterate over all translation units and
@@ -182,6 +184,24 @@ void CompileRequest::checkAllTranslationUnits()
{
checkTranslationUnit(translationUnit.Ptr());
}
+
+ for (auto& translationUnit : translationUnits)
+ {
+ // Next, do follow-up validation on any entry
+ // points that the user declared via API or
+ // command line, to ensure that they meet
+ // requirements.
+ //
+ // Note: We may eventually have syntax to
+ // identify entry points via a modifier on
+ // declarations, and in this case they should
+ // probably get validated as part of orindary
+ // checking above.
+ for (auto entryPoint : translationUnit->entryPoints)
+ {
+ validateEntryPoint(entryPoint);
+ }
+ }
}
void CompileRequest::generateIR()