#include "tsan_suppressions.h"
#include "sanitizer_common/sanitizer_common.h"
#include "sanitizer_common/sanitizer_libc.h"
#include "sanitizer_common/sanitizer_placement_new.h"
#include "sanitizer_common/sanitizer_suppressions.h"
#include "tsan_flags.h"
#include "tsan_mman.h"
#include "tsan_platform.h"
#include "tsan_rtl.h"
#if !SANITIZER_GO
static const char *const std_suppressions = …
"race:^_M_rep$\n"
"race:^_M_is_leaked$\n"
"race:std::_Sp_counted_ptr_inplace<std::thread::_Impl\n";
SANITIZER_WEAK_DEFAULT_IMPL
const char *__tsan_default_suppressions() { … }
#endif
namespace __tsan {
alignas(64) static char suppression_placeholder[sizeof(SuppressionContext)];
static SuppressionContext *suppression_ctx = …;
static const char *kSuppressionTypes[] = …;
void InitializeSuppressions() { … }
SuppressionContext *Suppressions() { … }
static const char *conv(ReportType typ) { … }
static uptr IsSuppressed(const char *stype, const AddressInfo &info,
Suppression **sp) { … }
uptr IsSuppressed(ReportType typ, const ReportStack *stack, Suppression **sp) { … }
uptr IsSuppressed(ReportType typ, const ReportLocation *loc, Suppression **sp) { … }
void PrintMatchedSuppressions() { … }
}