diff --git a/gc/default/default.c b/gc/default/default.c index b7d37149734c40..423d27dde11c84 100644 --- a/gc/default/default.c +++ b/gc/default/default.c @@ -4505,7 +4505,7 @@ rb_gc_impl_mark_weak(void *objspace_ptr, VALUE *ptr) { rb_objspace_t *objspace = objspace_ptr; - GC_ASSERT(objspace->rgengc.parent_object == 0 || FL_TEST(objspace->rgengc.parent_object, FL_WB_PROTECTED)); + GC_ASSERT(objspace->rgengc.parent_object == 0 || !RVALUE_WB_UNPROTECTED(objspace, objspace->rgengc.parent_object)); VALUE obj = *ptr; diff --git a/test/ruby/test_gc.rb b/test/ruby/test_gc.rb index 1c4561ed5a45ec..a8a937f078a9da 100644 --- a/test/ruby/test_gc.rb +++ b/test/ruby/test_gc.rb @@ -825,6 +825,8 @@ def test_vm_object end def test_exception_in_finalizer_procs + require '-test-/stack' + omit 'failing with ASAN' if Thread.asan? assert_in_out_err(["-W0"], "#{<<~"begin;"}\n#{<<~'end;'}", %w[c1 c2]) c1 = proc do puts "c1" @@ -845,6 +847,8 @@ def test_exception_in_finalizer_procs end def test_exception_in_finalizer_method + require '-test-/stack' + omit 'failing with ASAN' if Thread.asan? assert_in_out_err(["-W0"], "#{<<~"begin;"}\n#{<<~'end;'}", %w[c1 c2]) def self.c1(x) puts "c1"