27#ifndef AVUTIL_AVASSERT_H
28#define AVUTIL_AVASSERT_H
31#ifdef HAVE_AV_CONFIG_H
42#define av_assert0(cond) do { \
44 av_log(NULL, AV_LOG_PANIC, "Assertion %s failed at %s:%d\n", \
45 AV_STRINGIFY(cond), __FILE__, __LINE__); \
55#if defined(ASSERT_LEVEL) && ASSERT_LEVEL > 0
56#define av_assert1(cond) av_assert0(cond)
58#define av_assert1(cond) ((void)0)
65#if defined(ASSERT_LEVEL) && ASSERT_LEVEL > 1
66#define av_assert2(cond) av_assert0(cond)
68#define av_assert2(cond) ((void)0)
72#if defined(ASSERT_LEVEL) && ASSERT_LEVEL > 1
73#define av_assert2_fpu() av_assert0_fpu()
75#define av_assert2_fpu() ((void)0)
84void av_assert0_fpu(
void);
98#if defined(ASSERT_LEVEL) ? ASSERT_LEVEL > 0 : !defined(HAVE_AV_CONFIG_H) && !defined(NDEBUG)
99#define av_unreachable(msg) \
101 av_log(NULL, AV_LOG_PANIC, \
102 "Reached supposedly unreachable code at %s:%d: %s\n", \
103 __FILE__, __LINE__, msg); \
106#define av_assume(cond) av_assert0(cond)
108#if AV_GCC_VERSION_AT_LEAST(4, 5) || AV_HAS_BUILTIN(__builtin_unreachable)
109#define av_unreachable(msg) __builtin_unreachable()
110#elif defined(_MSC_VER)
111#define av_unreachable(msg) __assume(0)
112#elif __STDC_VERSION__ >= 202311L
114#define av_unreachable(msg) unreachable()
116#define av_unreachable(msg) ((void)0)
119#define av_assume(cond) do { \
Macro definitions for various function/variable attributes.
#define attribute_deprecated
Libavutil version macros.
Utility Preprocessor macros.