1
6
7
8
9
10
11
12
13
14
15
16
17
23
32
33
/* ... */
#ifndef __ESP_ASSERT_H__
#define __ESP_ASSERT_H__
#include "assert.h"
#define ESP_STATIC_ASSERT static_assert
#ifndef __cplusplus
#define TRY_STATIC_ASSERT(CONDITION, MSG) do { \
ESP_STATIC_ASSERT(__builtin_choose_expr(__builtin_constant_p(CONDITION), (CONDITION), 1), #MSG); \
assert(#MSG && (CONDITION)); \
}{...} while(0)...
/* ... */#else
#define TRY_STATIC_ASSERT(CONDITION, MSG) do { \
if (__builtin_constant_p(CONDITION) && !(CONDITION)) { \
extern __attribute__((error(#MSG))) void failed_compile_time_assert(void); \
failed_compile_time_assert(); \
}{...} \
assert(#MSG && (CONDITION)); \
}{...} while(0)...
/* ... */#endif
/* ... */
#endif