diff options
| author | Thomas Fussell <thomas.fussell@gmail.com> | 2017-03-17 00:33:06 -0400 |
|---|---|---|
| committer | Thomas Fussell <thomas.fussell@gmail.com> | 2017-03-17 00:33:06 -0400 |
| commit | d821b0a28a7223d0b49745c53a3ff032fcb001c8 (patch) | |
| tree | 12e13d5ff298a4e4b4f946ceb90b49cbfbe2d2c9 /toolsrc/src/vcpkg_Checks.cpp | |
| parent | 4921636f6bc92e041a410870ce564615c85a6cfb (diff) | |
| parent | 01b1e39c6a006adba7b9cf2af758be679d0b7eb9 (diff) | |
| download | vcpkg-d821b0a28a7223d0b49745c53a3ff032fcb001c8.tar.gz vcpkg-d821b0a28a7223d0b49745c53a3ff032fcb001c8.zip | |
Merge branch 'master' of https://github.com/Microsoft/vcpkg
Diffstat (limited to 'toolsrc/src/vcpkg_Checks.cpp')
| -rw-r--r-- | toolsrc/src/vcpkg_Checks.cpp | 30 |
1 files changed, 21 insertions, 9 deletions
diff --git a/toolsrc/src/vcpkg_Checks.cpp b/toolsrc/src/vcpkg_Checks.cpp index 02d3480a2..81e7d3825 100644 --- a/toolsrc/src/vcpkg_Checks.cpp +++ b/toolsrc/src/vcpkg_Checks.cpp @@ -1,12 +1,22 @@ #include "pch.h" #include "vcpkg_Checks.h" #include "vcpkg_System.h" +#include "vcpkglib.h" namespace vcpkg::Checks { - __declspec(noreturn) void unreachable() + static void print_line_info_if_debug(const LineInfo& line_info) + { + if (g_debugging) + { + System::println(System::color::error, line_info.toString()); + } + } + + __declspec(noreturn) void unreachable(const LineInfo& line_info) { System::println(System::color::error, "Error: Unreachable code was reached"); + System::println(System::color::error, line_info.toString()); // Always print line_info here #ifndef NDEBUG std::abort(); #else @@ -14,38 +24,40 @@ namespace vcpkg::Checks #endif } - __declspec(noreturn) void exit_with_message(const char* errorMessage) + __declspec(noreturn) void exit_with_message(const LineInfo& line_info, const char* errorMessage) { System::println(System::color::error, errorMessage); + print_line_info_if_debug(line_info); exit(EXIT_FAILURE); } - __declspec(noreturn) void throw_with_message(const char* errorMessage) + __declspec(noreturn) void throw_with_message(const LineInfo& line_info, const char* errorMessage) { + print_line_info_if_debug(line_info); throw std::runtime_error(errorMessage); } - void check_throw(bool expression, const char* errorMessage) + void check_throw(const LineInfo& line_info, bool expression, const char* errorMessage) { if (!expression) { - throw_with_message(errorMessage); + throw_with_message(line_info, errorMessage); } } - void check_exit(bool expression) + void check_exit(const LineInfo& line_info, bool expression) { if (!expression) { - exit(EXIT_FAILURE); + exit_with_message(line_info, ""); } } - void check_exit(bool expression, const char* errorMessage) + void check_exit(const LineInfo& line_info, bool expression, const char* errorMessage) { if (!expression) { - exit_with_message(errorMessage); + exit_with_message(line_info, errorMessage); } } } |
