aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--include/assert.h16
-rw-r--r--src/preprocess.c1
-rw-r--r--src/std.h7
3 files changed, 17 insertions, 7 deletions
diff --git a/include/assert.h b/include/assert.h
new file mode 100644
index 0000000..aac81d7
--- /dev/null
+++ b/include/assert.h
@@ -0,0 +1,16 @@
+#ifndef __DUCC_BUILTIN___ASSERT_H__
+#define __DUCC_BUILTIN___ASSERT_H__
+
+#ifdef NDEBUG
+#define assert(x) ((void)0)
+#else
+#define assert(x) \
+ do { \
+ if (!(x)) { \
+ fprintf(stderr, "%s:%d: assertion failed.\n", __FILE__, __LINE__); \
+ abort(); \
+ } \
+ } while (0)
+#endif
+
+#endif
diff --git a/src/preprocess.c b/src/preprocess.c
index a32e0e5..34c2fe0 100644
--- a/src/preprocess.c
+++ b/src/preprocess.c
@@ -1,4 +1,5 @@
#include "preprocess.h"
+#include <assert.h>
#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
diff --git a/src/std.h b/src/std.h
index 140eea8..2e4dbb1 100644
--- a/src/std.h
+++ b/src/std.h
@@ -6,13 +6,6 @@
// TODO: <stdlib.h>
int mkstemps(char*, int);
-#define assert(x) \
- do { \
- if (!(x)) { \
- fatal_error("%s:%d: assertion failed", __FILE__, __LINE__); \
- } \
- } while (0)
-
#define F_OK 0
#define R_OK 4
int access(const char*, int);