diff options
author | Jakob Kaivo <jkk@ung.org> | 2024-05-31 15:19:40 -0400 |
---|---|---|
committer | Jakob Kaivo <jkk@ung.org> | 2024-05-31 15:19:40 -0400 |
commit | bf0fad2913169318dc8e1d26c18ad056ee0cb363 (patch) | |
tree | fc3b33404530c026f40d78ac81765be1bd56155a | |
parent | f3dc97debd6f464b997bbfe69bd0a426f36a6428 (diff) |
add support for marking "dangerous" memory access
-rw-r--r-- | src/_safety.h | 12 |
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) |