* alloc.c [GC_ASSERTIONS && THREAD_LOCAL_ALLOC
&& AO_HAVE_load_acquire_read] (GC_check_fl_marks): Skip the whole check
if THREAD_SANITIZER; add comment.
/* (*pfreelist) are set. Check skipped if points to a special value. */
void GC_check_fl_marks(void **pfreelist)
{
-# ifdef AO_HAVE_load_acquire_read
+ /* TODO: There is a data race with GC_FAST_MALLOC_GRANS (which does */
+ /* not do atomic updates to the free-list). The race seems to be */
+ /* harmless, and for now we just skip this check in case of TSan. */
+# if defined(AO_HAVE_load_acquire_read) && !defined(THREAD_SANITIZER)
AO_t *list = (AO_t *)AO_load_acquire_read((AO_t *)pfreelist);
/* Atomic operations are used because the world is running. */
AO_t *prev;