зеркало из https://github.com/github/ruby.git
annotate functions to blacklist MSAN
In these functions we are intentionally reading memory address not owned by us. These reads should not be diagnosed. See also [Bug #8680] See also https://travis-ci.org/ruby/ruby/jobs/451202718 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65564 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
Родитель
a39080f59c
Коммит
cbb6a3a6aa
4
gc.c
4
gc.c
|
@ -864,7 +864,7 @@ static void gc_sweep_continue(rb_objspace_t *objspace, rb_heap_t *heap);
|
|||
|
||||
static inline void gc_mark(rb_objspace_t *objspace, VALUE ptr);
|
||||
static void gc_mark_ptr(rb_objspace_t *objspace, VALUE ptr);
|
||||
static void gc_mark_maybe(rb_objspace_t *objspace, VALUE ptr);
|
||||
NO_SANITIZE("memory", static void gc_mark_maybe(rb_objspace_t *objspace, VALUE ptr));
|
||||
static void gc_mark_children(rb_objspace_t *objspace, VALUE ptr);
|
||||
|
||||
static int gc_mark_stacked_objects_incremental(rb_objspace_t *, size_t count);
|
||||
|
@ -872,7 +872,7 @@ static int gc_mark_stacked_objects_all(rb_objspace_t *);
|
|||
static void gc_grey(rb_objspace_t *objspace, VALUE ptr);
|
||||
|
||||
static inline int gc_mark_set(rb_objspace_t *objspace, VALUE obj);
|
||||
static inline int is_pointer_to_heap(rb_objspace_t *objspace, void *ptr);
|
||||
NO_SANITIZE("memory", static inline int is_pointer_to_heap(rb_objspace_t *objspace, void *ptr));
|
||||
|
||||
static void push_mark_stack(mark_stack_t *, VALUE);
|
||||
static int pop_mark_stack(mark_stack_t *, VALUE *);
|
||||
|
|
|
@ -68,6 +68,10 @@ extern "C" {
|
|||
# define ATTRIBUTE_NO_ADDRESS_SAFETY_ANALYSIS(x) x
|
||||
#endif
|
||||
|
||||
#ifndef NO_SANITIZE
|
||||
#define NO_SANITIZE(x, y)
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_VALGRIND_MEMCHECK_H
|
||||
# include <valgrind/memcheck.h>
|
||||
# ifndef VALGRIND_MAKE_MEM_DEFINED
|
||||
|
|
Загрузка…
Ссылка в новой задаче