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