1 #ifndef HLASSERT_H__
2 #define HLASSERT_H__
3 
4 #if _MSC_VER >= 1000
5 #pragma once
6 #endif
7 
8 #ifdef SYSTEM_WIN32
9 #ifdef _DEBUG
10 
11 #include "log.h"
12 
13 #define assume(exp, message) {if (!(exp)) {Log("\n***** ERROR *****\nAssume '%s' failed\n at %s:%d\n %s\n\n", #exp, __FILE__, __LINE__, message);  __asm{int 3} }}
14 #define hlassert(exp) assume(exp, "")
15 
16 #else // _DEBUG
17 
18 #define assume(exp, message) {if (!(exp)) {Error("\nAssume '%s' failed\n at %s:%d\n %s\n\n", #exp, __FILE__, __LINE__, message);}}
19 #define hlassert(exp)
20 
21 #endif // _DEBUG
22 #endif // SYSTEM_WIN32
23 
24 #ifdef SYSTEM_POSIX
25 #ifdef _DEBUG
26 
27 #include "log.h"
28 
29 #define assume(exp, message) {if (!(exp)) {Log("\n***** ERROR *****\nAssume '%s' failed\n at %s:%d\n %s\n\n", #exp, __FILE__, __LINE__, message);  exit(-1); }}
30 #define hlassert(exp) assume(exp, "")
31 
32 #else // _DEBUG
33 
34 #define assume(exp, message) {if (!(exp)) {Error("\nAssume '%s' failed\n\n", #exp, __FILE__, __LINE__, message);}}
35 #define hlassert(exp)
36 
37 #endif // _DEBUG
38 #endif // SYSTEM_POSIX
39 
40 #endif // SYSTEM_POSIX HLASSERT_H__
41