summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakob Kaivo <jkk@ung.org>2024-05-31 15:19:40 -0400
committerJakob Kaivo <jkk@ung.org>2024-05-31 15:19:40 -0400
commitbf0fad2913169318dc8e1d26c18ad056ee0cb363 (patch)
treefc3b33404530c026f40d78ac81765be1bd56155a
parentf3dc97debd6f464b997bbfe69bd0a426f36a6428 (diff)
add support for marking "dangerous" memory access
-rw-r--r--src/_safety.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/_safety.h b/src/_safety.h
index 3fb3a66e..ebfe1acc 100644
--- a/src/_safety.h
+++ b/src/_safety.h
@@ -28,9 +28,20 @@ extern struct __checked_call {
unsigned long long line;
} __checked_call;
+#if 0
+_Thread_local
+#endif
+extern struct __dangerous {
+ const char *func;
+ const char *param;
+ const void *addr;
+} __dangerous;
+
#ifndef NDEBUG
#define UNDEFINED(...) __undefined(__VA_ARGS__)
+#define DANGER(__s) __dangerous = ((__s != NULL && __dangerous.func == NULL) ? (struct __dangerous){ .func = __func__, .param = #__s, .addr = __s } : (struct __dangerous){ 0 })
+
#define ADD_PREV(__val, __arr, __count) do { \
void *tmp = realloc((__arr), ((__count) + 1) * sizeof((__arr)[0])); \
if (tmp == NULL) { \
@@ -156,6 +167,7 @@ extern struct __checked_call {
#define UNDEFINED(...)
#define ASSERT_NOOVERLAP(__x, __y, __s)
#define ASSERT_NONNULL(x)
+#define DANGER(__s)
#define VCHECK_0(f)
#define VCHECK_1(f, a)
#define VCHECK_2(f, a, b)