00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef ERROR_H
00021 #define ERROR_H
00022
00023 #include <common/main.h>
00024
00030 void error_raw(const char *, ...);
00031 void fatal_raw(const char *, ...) NORETURN;
00032
00033 void nerror(const char *, ...);
00034 void nfatal(const char *, ...) NORETURN;
00035
00036 void assert_failed(const char *condition, const char *file, int line)
00037 NORETURN;
00038 #ifndef assert
00039 # ifdef DEBUG
00040 # define assert(c) ((c) ? (void)0 : assert_failed(#c, __FILE__, __LINE__))
00041 # else
00042 # define assert(c)
00043 # endif
00044 #endif
00045
00046 #define this_is_a_bug() \
00047 fatal_raw \
00048 ( \
00049 "you have found a bug (file %s, line %d) please report it immediately", \
00050 __FILE__, \
00051 __LINE__ \
00052 )
00053
00055 #endif // ERROR_H