summaryrefslogtreecommitdiffstats
path: root/source/slang/slang.cpp
diff options
context:
space:
mode:
authorTim Foley <tim.foley.is@gmail.com>2017-07-19 18:52:38 -0700
committerGitHub <noreply@github.com>2017-07-19 18:52:38 -0700
commitf07c01ceb012b9b325a8ecebd12cdd5797d8d5b3 (patch)
tree0b93a109d51e6565560ad785519a863386490e2a /source/slang/slang.cpp
parenta2b8b4c20632d79721052abd232fe2d1bdf2700d (diff)
parent3f48e1c0d84bf4909954154ad147559656e87516 (diff)
Merge pull request #128 from tfoleyNV/improve-failure-modes
Try to improve handling of failures during compilation
Diffstat (limited to 'source/slang/slang.cpp')
-rw-r--r--source/slang/slang.cpp14
1 files changed, 11 insertions, 3 deletions
diff --git a/source/slang/slang.cpp b/source/slang/slang.cpp
index 89db62ec8..caa50ad0e 100644
--- a/source/slang/slang.cpp
+++ b/source/slang/slang.cpp
@@ -571,7 +571,7 @@ void Session::addBuiltinSource(
OutputDebugStringA(compileRequest->mDiagnosticOutput.Buffer());
#endif
- assert(!"error in stdlib");
+ SLANG_UNEXPECTED("error in Slang standard library");
}
// Extract the AST for the code we just parsed
@@ -831,8 +831,16 @@ SLANG_API int spCompile(
{
auto req = REQ(request);
- int anyErrors = req->executeActions();
- return anyErrors;
+ try
+ {
+ int anyErrors = req->executeActions();
+ return anyErrors;
+ }
+ catch (...)
+ {
+ req->mSink.diagnose(Slang::CodePosition(), Slang::Diagnostics::compilationAborted);
+ return 1;
+ }
}
SLANG_API int