src: update UNREACHABLE macro to take a string
PR-URL: https://github.com/nodejs/node/pull/26502 Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com> Reviewed-By: Refael Ackermann <refack@gmail.com>
This commit is contained in:
parent
0df581c307
commit
00ba75ed5e
@ -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 <>
|
||||
|
20
src/util.h
20
src/util.h
@ -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>
|
||||
|
Loading…
x
Reference in New Issue
Block a user