v8  9.0.257(node16.0.0)
V8 is Google's open source JavaScript engine
logging.h
Go to the documentation of this file.
1 // Copyright 2020 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef INCLUDE_CPPGC_INTERNAL_LOGGING_H_
6 #define INCLUDE_CPPGC_INTERNAL_LOGGING_H_
7 
8 #include "cppgc/source-location.h"
9 #include "v8config.h" // NOLINT(build/include_directory)
10 
11 namespace cppgc {
12 namespace internal {
13 
14 void V8_EXPORT DCheckImpl(const char*,
15  const SourceLocation& = SourceLocation::Current());
16 [[noreturn]] void V8_EXPORT
17 FatalImpl(const char*, const SourceLocation& = SourceLocation::Current());
18 
19 // Used to ignore -Wunused-variable.
20 template <typename>
21 struct EatParams {};
22 
23 #if DEBUG
24 #define CPPGC_DCHECK_MSG(condition, message)
25  do {
26  if (V8_UNLIKELY(!(condition))) {
27  ::cppgc::internal::DCheckImpl(message);
28  }
29  } while (false)
30 #else
31 #define CPPGC_DCHECK_MSG(condition, message)
32  (static_cast<void>(::cppgc::internal::EatParams<decltype(
33  static_cast<void>(condition), message)>{}))
34 #endif
35 
36 #define CPPGC_DCHECK(condition) CPPGC_DCHECK_MSG(condition, #condition)
37 
38 #define CPPGC_CHECK_MSG(condition, message)
39  do {
40  if (V8_UNLIKELY(!(condition))) {
41  ::cppgc::internal::FatalImpl(message);
42  }
43  } while (false)
44 
45 #define CPPGC_CHECK(condition) CPPGC_CHECK_MSG(condition, #condition)
46 
47 } // namespace internal
48 } // namespace cppgc
49 
50 #endif // INCLUDE_CPPGC_INTERNAL_LOGGING_H_
V8_UNLIKELY
#define V8_UNLIKELY(condition)
Definition: v8config.h:443
cppgc::internal::FatalImpl
void V8_EXPORT FatalImpl(const char *, const SourceLocation &=SourceLocation::Current())
CPPGC_DCHECK_MSG
#define CPPGC_DCHECK_MSG(condition, message)
Definition: logging.h:31
cppgc
Definition: allocation.h:17
V8_EXPORT
#define V8_EXPORT
Definition: v8config.h:512
cppgc::SourceLocation::Current
static constexpr SourceLocation Current()
Definition: source-location.h:43
cppgc::internal::EatParams
Definition: logging.h:21
cppgc::internal::DCheckImpl
void V8_EXPORT DCheckImpl(const char *, const SourceLocation &=SourceLocation::Current())
CPPGC_CHECK_MSG
#define CPPGC_CHECK_MSG(condition, message)
Definition: logging.h:38
cppgc::internal
Definition: allocation.h:22