# This file lists the functions, object files and source files # which should be ignored (i.e. not instrumented) by ThreadSanitizer on Mac OS. # At the moment the Chromium binaries' debug info is not available to # ThreadSanitizer, so we have to define fun:* rules for Mac OS complementing # the src:* rules defined for Linux. # Don't instrument code dealing with atomics (base::subtle) fun:*base*subtle*NoBarrier_Load* fun:*base*subtle*Release_Store* fun:*base*subtle*NoBarrier_Store* fun:*base*subtle*NoBarrier_CompareAndSwap* # 32-bit version of std::string # There is something very strange inside these functions. # Looks like they write zero to a global variable which # value is already zero. I.e. the race is benign. # Global var is _ZNSs4_Rep20_S_empty_rep_storageE # The race can only be reported on Mac since empty_rep is ignored by name # inside ThreadSanitizer. Unfortunately, we don't have global variable names # when running on Mac. fun:*_M_mutateE* fun_r:*_M_set_length_and_sharable* fun:*_M_is_leaked* fun:*_M_is_shared* fun:*_M_set_leaked* fun:*_M_set_sharable* # we ignore the Security libraries for now since # their instrumentation is very slow. # TODO(timurrrr): investigate whether we need to instrument them obj:*/Security* obj:*/libcrypto* # SensitiveAllocator::free is a part of the Security framework. # It calls bzero (0xffff0633) which can't be resolved and thus should be # ignored recursively. fun_r:*SensitiveAllocator*free* # The CFBag and CFDictionary operators should be thread-safe, but they are not # annotated properly. # TODO(glider): replace all the CoreFoundation suppressions with ignores. fun_r:CFBag* fun_r:CFDictionary*