00001
00002
00003
00004
00005
00006
00007
00008 #ifndef LASSERT_H
00009 #define LASSERT_H
00010
00011 #include <stdio.h>
00012 #include <stdlib.h>
00013
00014 #if 0
00015 #define FAIL exit (1)
00016 #else
00017 #define FAIL return 1
00018 #endif
00019
00020 #define LASSERT(cond) \
00021 ({ \
00022 if (! (cond)) \
00023 { \
00024 fprintf (stderr, "%s:%d: assertion FAILED: " #cond "\n", \
00025 __FILE__, __LINE__); \
00026 FAIL; \
00027 } \
00028 })
00029
00030 #define LASSERTF(cond, fmt, a...) \
00031 ({ \
00032 if (! (cond)) \
00033 { \
00034 fprintf (stderr, "%s:%d: assertion FAILED: " #cond ": " fmt, \
00035 __FILE__, __LINE__, ## a); \
00036 FAIL; \
00037 } \
00038 })
00039
00040 #endif