summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--source/core/slang-std-writers.cpp4
-rw-r--r--source/slangc/main.cpp9
2 files changed, 11 insertions, 2 deletions
diff --git a/source/core/slang-std-writers.cpp b/source/core/slang-std-writers.cpp
index bf3ae72fd..a23d878fb 100644
--- a/source/core/slang-std-writers.cpp
+++ b/source/core/slang-std-writers.cpp
@@ -10,8 +10,8 @@ namespace Slang
{
RefPtr<StdWriters> stdWriters(new StdWriters);
- RefPtr<FileWriter> stdError(new FileWriter(stderr, WriterFlag::AutoFlush));
- RefPtr<FileWriter> stdOut(new FileWriter(stdout, WriterFlag::AutoFlush));
+ RefPtr<FileWriter> stdError(new FileWriter(stderr, WriterFlag::AutoFlush | WriterFlag::IsUnowned));
+ RefPtr<FileWriter> stdOut(new FileWriter(stdout, WriterFlag::AutoFlush | WriterFlag::IsUnowned));
stdWriters->setWriter(SLANG_WRITER_CHANNEL_STD_ERROR, stdError);
stdWriters->setWriter(SLANG_WRITER_CHANNEL_STD_OUTPUT, stdOut);
diff --git a/source/slangc/main.cpp b/source/slangc/main.cpp
index 3a01c07e7..b86472617 100644
--- a/source/slangc/main.cpp
+++ b/source/slangc/main.cpp
@@ -139,6 +139,15 @@ int wmain(int argc, wchar_t** argv)
}
#ifdef _MSC_VER
+ // "When _DEBUG isn't defined, calls to _CrtSetReportMode are removed
+ // during preprocessing."
+ _CrtSetReportMode(_CRT_WARN, _CRTDBG_MODE_FILE | _CRTDBG_MODE_DEBUG);
+ _CrtSetReportFile(_CRT_WARN, _CRTDBG_FILE_STDERR);
+ _CrtSetReportMode(_CRT_ERROR, _CRTDBG_MODE_FILE | _CRTDBG_MODE_DEBUG);
+ _CrtSetReportFile(_CRT_ERROR, _CRTDBG_FILE_STDERR);
+ _CrtSetReportMode(_CRT_ASSERT, _CRTDBG_MODE_FILE | _CRTDBG_MODE_DEBUG);
+ _CrtSetReportFile(_CRT_ASSERT, _CRTDBG_FILE_STDERR);
+
_CrtDumpMemoryLeaks();
#endif