summaryrefslogtreecommitdiff
path: root/gc.c
diff options
context:
space:
mode:
Diffstat (limited to 'gc.c')
-rw-r--r--gc.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/gc.c b/gc.c
index 774f82bb5b..f4322417b6 100644
--- a/gc.c
+++ b/gc.c
@@ -936,6 +936,14 @@ ruby_modular_gc_init(void)
# define rb_gc_impl_copy_attributes rb_gc_functions.copy_attributes
#endif
+#ifdef RUBY_ASAN_ENABLED
+static void
+asan_death_callback(void)
+{
+ rb_bug_without_die("ASAN error");
+}
+#endif
+
static VALUE initial_stress = Qfalse;
void *
@@ -951,6 +959,10 @@ rb_objspace_alloc(void)
rb_gc_impl_objspace_init(objspace);
rb_gc_impl_stress_set(objspace, initial_stress);
+#ifdef RUBY_ASAN_ENABLED
+ __sanitizer_set_death_callback(asan_death_callback);
+#endif
+
return objspace;
}