summaryrefslogtreecommitdiffstats
path: root/source/slang/options.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/slang/options.cpp')
-rw-r--r--source/slang/options.cpp20
1 files changed, 16 insertions, 4 deletions
diff --git a/source/slang/options.cpp b/source/slang/options.cpp
index a067ddf0c..d6310e8e1 100644
--- a/source/slang/options.cpp
+++ b/source/slang/options.cpp
@@ -859,14 +859,26 @@ struct OptionsParser
SlangResult parseOptions(
- SlangCompileRequest* compileRequest,
+ SlangCompileRequest* compileRequestIn,
int argc,
char const* const* argv)
{
+ Slang::CompileRequest* compileRequest = (Slang::CompileRequest*) compileRequestIn;
+
OptionsParser parser;
- parser.compileRequest = compileRequest;
- parser.requestImpl = (Slang::CompileRequest*) compileRequest;
- return parser.parse(argc, argv);
+ parser.compileRequest = compileRequestIn;
+ parser.requestImpl = compileRequest;
+
+ Result res = parser.parse(argc, argv);
+
+ DiagnosticSink* sink = &compileRequest->mSink;
+ if (sink->GetErrorCount() > 0)
+ {
+ // Put the errors in the diagnostic
+ compileRequest->mDiagnosticOutput = sink->outputBuffer.ProduceString();
+ }
+
+ return res;
}