a948525605522ca3965b42fee902e6167656d3c5
2 * SPDX-License-Identifier: MIT
4 * Copyright (c) 2018-2019 EfficiOS Inc. and Linux Foundation
5 * Copyright (c) 2018-2019 Philippe Proulx <pproulx@efficios.com>
8 #ifndef BABELTRACE_COMMON_ASSERT_H
9 #define BABELTRACE_COMMON_ASSERT_H
14 #include "common/macros.h"
20 extern void bt_common_assert_failed(const char *file
, int line
,
21 const char *func
, const char *assertion
)
22 __attribute__((noreturn
));
25 * Internal assertion (to detect logic errors on which the library user
26 * has no influence). Use BT_ASSERT_PRE*() or BT_ASSERT_POST*() to check
27 * preconditions or postconditions which must be directly or indirectly
28 * satisfied by the library user.
30 * BT_ASSERT() is enabled in both debug and non-debug modes.
32 #define BT_ASSERT(_cond) \
35 bt_common_assert_failed(__FILE__, __LINE__, __func__, \
36 G_STRINGIFY(_cond)); \
41 * Marks a function as being only used within a BT_ASSERT() context.
43 #define BT_ASSERT_FUNC
48 * Debug mode internal assertion.
50 #define BT_ASSERT_DBG(_cond) BT_ASSERT(_cond)
53 * Marks a function as being only used within a BT_ASSERT_DBG() context.
55 #define BT_ASSERT_DBG_FUNC
57 #else /* BT_DEBUG_MODE */
58 # define BT_ASSERT_DBG(_cond) BT_USE_EXPR(_cond)
59 # define BT_ASSERT_DBG_FUNC __attribute__((unused))
60 #endif /* BT_DEBUG_MODE */
66 #endif /* BABELTRACE_COMMON_ASSERT_H */
This page took 0.03282 seconds and 5 git commands to generate.