summaryrefslogtreecommitdiff
path: root/nonstd
diff options
context:
space:
mode:
Diffstat (limited to 'nonstd')
-rw-r--r--nonstd/assert.h67
1 files changed, 0 insertions, 67 deletions
diff --git a/nonstd/assert.h b/nonstd/assert.h
deleted file mode 100644
index 50614d5b..00000000
--- a/nonstd/assert.h
+++ /dev/null
@@ -1,67 +0,0 @@
-#ifndef __NONSTD_ASSERT_H__
-#define __NONSTD_ASSERT_H__
-#include "nonstd/types.h"
-
-#define __STDC_WANT_LIB_EXT1__ 1
-
-#include <stdio.h>
-#include <errno.h>
-#include <stdarg.h>
-
-typedef int errno_t;
-typedef void (*constraint_handler_t)(const char * restrict msg, void * restrict ptr, errno_t error);
-
-#ifndef EFAULT
-#define EFAULT 10
-#endif
-
-#ifndef NDEBUG
-
-# define ASSERT_NONNULL(_ptr) do { \
- if (!_ptr) { \
- struct __constraint_info _ci = {0}; \
- _ci.func = __func__; \
- __libc.stdlib.constraint_handler("Undefined behavior: " \
- "Parameter " #_ptr " can not be NULL", &_ci, EFAULT); \
- } \
-} while (0)
-
-# define ASSERT_NONZERO(_n) do { \
- if (!_n) { \
- struct __constraint_info _ci = {0}; \
- _ci.func = __func__; \
- __libc.stdlib.constraint_handler("Undefined behavior: " \
- "Parameter " #_n " can not be 0", &_ci, ERANGE); \
- } \
-} while (0)
-
-# define ASSERT_NOOVERLAP(x, y, s) do { \
- /* TODO */ \
-} while (0)
-
-# define ASSERT_REPRESENTABLE(_n, _min, _max, _type, _sentinel) do { \
- if (_sentinel && (_n != _sentinel && (_n < _min || _n > _max))) { \
- struct __constraint_info _ci = {0}; \
- _ci.func = __func__; \
- __libc.stdlib.constraint_handler("Undefined behavior: " \
- "Paramater " #_n " must be representable as a " #_type \
- "or be equal to " #_sentinel, &_ci, ERANGE); \
- } else if (_n < _min || _n > _max) { \
- struct __constraint_info _ci = {0}; \
- _ci.func = __func__; \
- __libc.stdlib.constraint_handler("Undefined behavior: " \
- "Parameter " #_n " must be representable as a " #_type, \
- &_ci, ERANGE); \
- } \
-} while (0)
-
-#else
-
-# define ASSERT_NONNULL(x) (void(0))
-# define ASSERT_NOOVERLAP(x, y, s) (void(0))
-# define ASSERT_REPRESENTABLE(n, min, max, type, sentinel) (void(0))
-# define ASSERT_NONZERO(n)
-
-#endif
-
-#endif