Skip to content
Permalink
Browse files

src: update UNREACHABLE macro to take a string

PR-URL: #26502
Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com>
Reviewed-By: Refael Ackermann <refack@gmail.com>
  • Loading branch information...
nitsakh authored and addaleax committed Mar 8, 2019
1 parent 0df581c commit 00ba75ed5ef2132ccbe043b3993bd90e7362966b
Showing with 15 additions and 9 deletions.
  1. +1 −1 src/node_crypto.cc
  2. +1 −1 src/node_file.h
  3. +13 −7 src/util.h
@@ -3456,7 +3456,7 @@ static ManagedEVPPKey GetPublicOrPrivateKeyFromJs(
is_public = false;
break;
default:
CHECK(!"Invalid key encoding type");
UNREACHABLE("Invalid key encoding type");
}

if (is_public) {
@@ -162,7 +162,7 @@ template <typename NativeT,
constexpr NativeT ToNative(uv_timespec_t ts) {
// This template has exactly two specializations below.
static_assert(std::is_arithmetic<NativeT>::value == false, "Not implemented");
UNREACHABLE();
return NativeT();
}

template <>
@@ -116,6 +116,16 @@ void DumpBacktrace(FILE* fp);

#define ABORT() node::Abort()

#define ERROR_AND_ABORT(expr) \
do { \
/* Make sure that this struct does not end up in inline code, but */ \
/* rather in a read-only data section when modifying this code. */ \
static const node::AssertionInfo args = { \
__FILE__ ":" STRINGIFY(__LINE__), #expr, PRETTY_FUNCTION_NAME \
}; \
node::Assert(args); \
} while (0)

#ifdef __GNUC__
#define LIKELY(expr) __builtin_expect(!!(expr), 1)
#define UNLIKELY(expr) __builtin_expect(!!(expr), 0)
@@ -132,12 +142,7 @@ void DumpBacktrace(FILE* fp);
#define CHECK(expr) \
do { \
if (UNLIKELY(!(expr))) { \
/* Make sure that this struct does not end up in inline code, but */ \
/* rather in a read-only data section when modifying this code. */ \
static const node::AssertionInfo args = { \
__FILE__ ":" STRINGIFY(__LINE__), #expr, PRETTY_FUNCTION_NAME \
}; \
node::Assert(args); \
ERROR_AND_ABORT(expr); \
} \
} while (0)

@@ -176,7 +181,8 @@ void DumpBacktrace(FILE* fp);
#endif


#define UNREACHABLE() ABORT()
#define UNREACHABLE(expr) \
ERROR_AND_ABORT("Unreachable code reached: " expr)

// TAILQ-style intrusive list node.
template <typename T>

0 comments on commit 00ba75e

Please sign in to comment.
You can’t perform that action at this time.