V8  latest master commit
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 
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_
cppgc::internal::FatalImpl
void V8_EXPORT FatalImpl(const char *, const SourceLocation &=SourceLocation::Current())
cppgc
Definition: allocation.h:18
v8config.h
V8_EXPORT
#define V8_EXPORT
Definition: v8config.h:467
cppgc::internal::EatParams
Definition: logging.h:21
cppgc::internal::DCheckImpl
void V8_EXPORT DCheckImpl(const char *, const SourceLocation &=SourceLocation::Current())
cppgc::SourceLocation::Current
static constexpr SourceLocation Current()
Definition: source-location.h:37
source-location.h