From 990ed7383ef1d3311dfc1023785d2dc18cca5171 Mon Sep 17 00:00:00 2001 From: jsmall-nvidia Date: Tue, 17 Jul 2018 13:36:19 -0400 Subject: Fix problem when doing options parse, that failure doesn't leave appropriate message in diagnostic string. (#612) --- source/slang/options.cpp | 20 ++++++++++++++++---- 1 file 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; } -- cgit v1.2.3