diff options
| author | jsmall-nvidia <jsmall@nvidia.com> | 2018-07-17 13:36:19 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-07-17 13:36:19 -0400 |
| commit | 990ed7383ef1d3311dfc1023785d2dc18cca5171 (patch) | |
| tree | 287d5789eae6c416d954c11ef7308014b500f0ed /source/slang/options.cpp | |
| parent | 7b2a549fcf04263e07127315d72c8570e8063828 (diff) | |
Fix problem when doing options parse, that failure doesn't leave appropriate message in diagnostic string. (#612)
Diffstat (limited to 'source/slang/options.cpp')
| -rw-r--r-- | source/slang/options.cpp | 20 |
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; } |
