1234567891011121314151617181920212223242526272829303132333435 |
- // -*- C++ -*-
- //===----------------------------------------------------------------------===//
- //
- // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
- // See https://llvm.org/LICENSE.txt for license information.
- // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- //
- //===----------------------------------------------------------------------===//
- #ifndef SUPPORT_SET_WINDOWS_CRT_REPORT_MODE_H
- #define SUPPORT_SET_WINDOWS_CRT_REPORT_MODE_H
- #ifndef _DEBUG
- #error _DEBUG must be defined when using this header
- #endif
- #ifndef _WIN32
- #error This header can only be used when targeting Windows
- #endif
- #include <crtdbg.h>
- // On Windows in debug builds the default assertion handler opens a new dialog
- // window which must be dismissed manually by the user. This function overrides
- // that setting and instead changes the assertion handler to log to stderr
- // instead.
- inline int init_crt_report_mode() {
- _CrtSetReportMode(_CRT_WARN, _CRTDBG_MODE_DEBUG);
- _CrtSetReportMode(_CRT_ERROR, _CRTDBG_MODE_DEBUG);
- _CrtSetReportMode(_CRT_ASSERT, _CRTDBG_MODE_DEBUG);
- return 0;
- }
- static int init_crt_anchor = init_crt_report_mode();
- #endif // SUPPORT_SET_WINDOWS_CRT_REPORT_MODE_H
|