#include "nsan_stats.h"
#include "sanitizer_common/sanitizer_common.h"
#include "sanitizer_common/sanitizer_placement_new.h"
#include "sanitizer_common/sanitizer_stackdepot.h"
#include "sanitizer_common/sanitizer_stacktrace.h"
#include "sanitizer_common/sanitizer_symbolizer.h"
#include <assert.h>
#include <stdio.h>
usingnamespace__sanitizer;
usingnamespace__nsan;
Stats::Stats() { … }
Stats::~Stats() { … }
static uptr Key(CheckTypeT CheckType, u32 StackId) { … }
template <typename MapT, typename VectorT, typename Fn>
static void UpdateEntry(CheckTypeT check_ty, uptr pc, uptr bp, MapT *map,
VectorT *vector, Mutex *mutex, Fn F) { … }
void Stats::AddCheck(CheckTypeT check_ty, uptr pc, uptr bp, double rel_err) { … }
void Stats::AddWarning(CheckTypeT check_ty, uptr pc, uptr bp, double rel_err) { … }
void Stats::AddInvalidLoadTrackingEvent(uptr pc, uptr bp) { … }
void Stats::AddUnknownLoadTrackingEvent(uptr pc, uptr bp) { … }
static const char *CheckTypeDisplay(CheckTypeT CheckType) { … }
void Stats::Print() const { … }
alignas(64) static char stats_placeholder[sizeof(Stats)];
Stats *__nsan::nsan_stats = …;
void __nsan::InitializeStats() { … }