aboutsummaryrefslogtreecommitdiff
path: root/toolsrc/src/vcpkg_Checks.cpp
diff options
context:
space:
mode:
authorThomas Fussell <thomas.fussell@gmail.com>2017-03-17 00:33:06 -0400
committerThomas Fussell <thomas.fussell@gmail.com>2017-03-17 00:33:06 -0400
commitd821b0a28a7223d0b49745c53a3ff032fcb001c8 (patch)
tree12e13d5ff298a4e4b4f946ceb90b49cbfbe2d2c9 /toolsrc/src/vcpkg_Checks.cpp
parent4921636f6bc92e041a410870ce564615c85a6cfb (diff)
parent01b1e39c6a006adba7b9cf2af758be679d0b7eb9 (diff)
downloadvcpkg-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.cpp30
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);
}
}
}