diff options
Diffstat (limited to 'compiler-rt/lib/tsan/rtl/tsan_rtl_report.cc')
-rw-r--r-- | compiler-rt/lib/tsan/rtl/tsan_rtl_report.cc | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/compiler-rt/lib/tsan/rtl/tsan_rtl_report.cc b/compiler-rt/lib/tsan/rtl/tsan_rtl_report.cc index 18ab18e0cbf..50c531177dc 100644 --- a/compiler-rt/lib/tsan/rtl/tsan_rtl_report.cc +++ b/compiler-rt/lib/tsan/rtl/tsan_rtl_report.cc @@ -616,7 +616,12 @@ void ReportRace(ThreadState *thr) { Context *ctx = CTX(); ThreadRegistryLock l0(ctx->thread_registry); - ScopedReport rep(freed ? ReportTypeUseAfterFree : ReportTypeRace); + ReportType typ = ReportTypeRace; + if (thr->is_vptr_access) + typ = ReportTypeVptrRace; + else if (freed) + typ = ReportTypeUseAfterFree; + ScopedReport rep(typ); const uptr kMop = 2; StackTrace traces[kMop]; const uptr toppc = TraceTopPC(thr); |