diff options
| -rw-r--r-- | tools/slang-cpp-extractor/slang-cpp-extractor-diagnostics.cpp | 2 | ||||
| -rw-r--r-- | tools/slang-cpp-extractor/slang-cpp-extractor-main.cpp | 32 |
2 files changed, 21 insertions, 13 deletions
diff --git a/tools/slang-cpp-extractor/slang-cpp-extractor-diagnostics.cpp b/tools/slang-cpp-extractor/slang-cpp-extractor-diagnostics.cpp index 4c8de5757..d07b125cb 100644 --- a/tools/slang-cpp-extractor/slang-cpp-extractor-diagnostics.cpp +++ b/tools/slang-cpp-extractor/slang-cpp-extractor-diagnostics.cpp @@ -6,7 +6,7 @@ namespace CPPDiagnostics { using namespace Slang; -#define DIAGNOSTIC(id, severity, name, messageFormat) const DiagnosticInfo name = { id, Severity::severity, messageFormat }; +#define DIAGNOSTIC(id, severity, name, messageFormat) const DiagnosticInfo name = { id, Severity::severity, #name, messageFormat }; #include "slang-cpp-extractor-diagnostic-defs.h" } diff --git a/tools/slang-cpp-extractor/slang-cpp-extractor-main.cpp b/tools/slang-cpp-extractor/slang-cpp-extractor-main.cpp index 5c8b521fe..96df8ec4b 100644 --- a/tools/slang-cpp-extractor/slang-cpp-extractor-main.cpp +++ b/tools/slang-cpp-extractor/slang-cpp-extractor-main.cpp @@ -2478,26 +2478,34 @@ int main(int argc, const char*const* argv) using namespace Slang; { - RootNamePool rootNamePool; + ComPtr<ISlangWriter> writer(new FileWriter(stderr, WriterFlag::AutoFlush)); - SourceManager sourceManager; - sourceManager.initialize(nullptr, nullptr); + try + { + RootNamePool rootNamePool; - ComPtr<ISlangWriter> writer(new FileWriter(stderr, WriterFlag::AutoFlush)); + SourceManager sourceManager; + sourceManager.initialize(nullptr, nullptr); - DiagnosticSink sink(&sourceManager); - sink.writer = writer; + DiagnosticSink sink(&sourceManager); + sink.writer = writer; - CPPExtractorApp app(&sink, &sourceManager, &rootNamePool); - if (SLANG_FAILED(app.executeWithArgs(argc - 1, argv + 1))) - { - return 1; + CPPExtractorApp app(&sink, &sourceManager, &rootNamePool); + if (SLANG_FAILED(app.executeWithArgs(argc - 1, argv + 1))) + { + return 1; + } + if (sink.getErrorCount()) + { + return 1; + } } - if (sink.getErrorCount()) + catch (...) { + WriterHelper helper(writer); + helper.print("Unknown internal error in C++ extractor, aborted!\n"); return 1; } - } return 0; } |
