aboutsummaryrefslogtreecommitdiffstats
path: root/internal.h
diff options
context:
space:
mode:
Diffstat (limited to 'internal.h')
-rw-r--r--internal.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/internal.h b/internal.h
index 50a20a2bf6..f2c9c238eb 100644
--- a/internal.h
+++ b/internal.h
@@ -105,6 +105,7 @@ extern "C" {
# define __asan_poison_memory_region(x, y)
# define __asan_unpoison_memory_region(x, y)
# define __asan_region_is_poisoned(x, y) 0
+# define poisoned_object_p(x) 0
#endif
#ifdef HAVE_SANITIZER_MSAN_INTERFACE_H
@@ -132,6 +133,15 @@ poison_object(VALUE obj)
poison_memory_region(ptr, SIZEOF_VALUE);
}
+#if __has_feature(address_sanitizer)
+static inline void *
+poisoned_object_p(VALUE obj)
+{
+ struct RVALUE *ptr = (void *)obj;
+ return __asan_region_is_poisoned(ptr, SIZEOF_VALUE);
+}
+#endif
+
static inline void
unpoison_memory_region(const volatile void *ptr, size_t size, bool malloc_p)
{