blob: ef6e033c6f0cf04dc64cb798178baacdbf967409 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
#pragma once
#include <assert.h> // For convenience, bring in soft assertions with assert().
#include <signal.h>
// Allow the client to define their own LOGE() macro.
#ifndef LOGE
#include <stdio.h>
#define LOGE(format, ...) \
{ \
fprintf( \
stderr, "[ASSERT] %s:%d " format "\n", __FILE__, \
__LINE__ __VA_OPT__(, ) __VA_ARGS__); \
}
#endif // LOGE
#define TRAP() raise(SIGTRAP)
/// Unconditional hard assert.
#define FAIL(format, ...) \
LOGE(format, __VA_ARGS__); \
TRAP();
//// Conditional hard assert.
#define ASSERT(condition) \
if (!(condition)) { \
LOGE("Assertion failed: " #condition) \
TRAP(); \
}
|