summaryrefslogtreecommitdiff
path: root/src/nonstd/ASSERT_NONZERO.c
blob: e48e775ae774c78c492ba9c576473aef4dbaa1c5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <nonstd/assert.h>

#ifndef NDEBUG
#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)
#else
#define ASSERT_NONZERO(n)
#endif