summaryrefslogtreecommitdiffstats
path: root/tools/slang-cpp-extractor
diff options
context:
space:
mode:
Diffstat (limited to 'tools/slang-cpp-extractor')
-rw-r--r--tools/slang-cpp-extractor/slang-cpp-extractor-diagnostics.cpp2
-rw-r--r--tools/slang-cpp-extractor/slang-cpp-extractor-main.cpp32
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;
}