[compiler-rt] [NFC][TSan] Tidy up DPrintf warnings in TSan runtime (PR #161371)

Dan Blackwell via llvm-commits llvm-commits at lists.llvm.org
Tue Sep 30 06:12:03 PDT 2025


https://github.com/DanBlackwell created https://github.com/llvm/llvm-project/pull/161371

Currently there are many `warning: format specifies type 'void *'` warnings when compiling TSan with debug output.

This patch adds the `void *` casts where necessary to eliminate the warnings.

>From fdca4c07c04f3f9b8069980d753928402a3026a2 Mon Sep 17 00:00:00 2001
From: Dan Blackwell <dan_blackwell at apple.com>
Date: Tue, 30 Sep 2025 14:04:40 +0100
Subject: [PATCH] [NFC][TSan] Tidy up DPrintf warnings in TSan runtime

Currently there are many `warning: format specifies type 'void *'` warnings when compiling TSan with debug output.

This patch adds the `void *` casts where necessary to eliminate the warnings.
---
 compiler-rt/lib/tsan/rtl/tsan_fd.cpp         | 4 ++--
 compiler-rt/lib/tsan/rtl/tsan_rtl.cpp        | 6 +++---
 compiler-rt/lib/tsan/rtl/tsan_rtl_report.cpp | 5 +++--
 3 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/compiler-rt/lib/tsan/rtl/tsan_fd.cpp b/compiler-rt/lib/tsan/rtl/tsan_fd.cpp
index ab295a69dce17..86538bbad1138 100644
--- a/compiler-rt/lib/tsan/rtl/tsan_fd.cpp
+++ b/compiler-rt/lib/tsan/rtl/tsan_fd.cpp
@@ -180,7 +180,7 @@ void FdAcquire(ThreadState *thr, uptr pc, int fd) {
     return;
   FdDesc *d = fddesc(thr, pc, fd);
   FdSync *s = d->sync;
-  DPrintf("#%d: FdAcquire(%d) -> %p\n", thr->tid, fd, s);
+  DPrintf("#%d: FdAcquire(%d) -> %p\n", thr->tid, fd, (void *)s);
   MemoryAccess(thr, pc, (uptr)d, 8, kAccessRead);
   if (s)
     Acquire(thr, pc, (uptr)s);
@@ -191,7 +191,7 @@ void FdRelease(ThreadState *thr, uptr pc, int fd) {
     return;
   FdDesc *d = fddesc(thr, pc, fd);
   FdSync *s = d->sync;
-  DPrintf("#%d: FdRelease(%d) -> %p\n", thr->tid, fd, s);
+  DPrintf("#%d: FdRelease(%d) -> %p\n", thr->tid, fd, (void *)s);
   MemoryAccess(thr, pc, (uptr)d, 8, kAccessRead);
   if (s)
     Release(thr, pc, (uptr)s);
diff --git a/compiler-rt/lib/tsan/rtl/tsan_rtl.cpp b/compiler-rt/lib/tsan/rtl/tsan_rtl.cpp
index 0d7247a56a4c2..3008f28ab764b 100644
--- a/compiler-rt/lib/tsan/rtl/tsan_rtl.cpp
+++ b/compiler-rt/lib/tsan/rtl/tsan_rtl.cpp
@@ -86,7 +86,7 @@ static TracePart* TracePartAlloc(ThreadState* thr) {
     if (trace->parts_allocated == max_parts ||
         ctx->trace_part_finished_excess) {
       part = ctx->trace_part_recycle.PopFront();
-      DPrintf("#%d: TracePartAlloc: part=%p\n", thr->tid, part);
+      DPrintf("#%d: TracePartAlloc: part=%p\n", thr->tid, (void*)part);
       if (part && part->trace) {
         Trace* trace1 = part->trace;
         Lock trace_lock(&trace1->mtx);
@@ -938,7 +938,7 @@ static bool TraceSkipGap(ThreadState* thr) {
   DCHECK_EQ(reinterpret_cast<uptr>(pos + 1) & TracePart::kAlignment, 0);
   auto *part = trace->parts.Back();
   DPrintf("#%d: TraceSwitchPart enter trace=%p parts=%p-%p pos=%p\n", thr->tid,
-          trace, trace->parts.Front(), part, pos);
+          (void*)trace, (void*)trace->parts.Front(), (void*)part, (void*)pos);
   if (!part)
     return false;
   // We can get here when we still have space in the current trace part.
@@ -1052,7 +1052,7 @@ void TraceSwitchPartImpl(ThreadState* thr) {
       ctx->trace_part_recycle.PushBack(recycle);
   }
   DPrintf("#%d: TraceSwitchPart exit parts=%p-%p pos=0x%zx\n", thr->tid,
-          trace->parts.Front(), trace->parts.Back(),
+          (void*)trace->parts.Front(), (void*)trace->parts.Back(),
           atomic_load_relaxed(&thr->trace_pos));
 }
 
diff --git a/compiler-rt/lib/tsan/rtl/tsan_rtl_report.cpp b/compiler-rt/lib/tsan/rtl/tsan_rtl_report.cpp
index 43aef30d2f3b3..edfb3373ea036 100644
--- a/compiler-rt/lib/tsan/rtl/tsan_rtl_report.cpp
+++ b/compiler-rt/lib/tsan/rtl/tsan_rtl_report.cpp
@@ -511,7 +511,8 @@ bool RestoreStack(EventType type, Sid sid, Epoch epoch, uptr addr, uptr size,
     Lock lock(&trace->mtx);
     first_part = trace->parts.Front();
     if (!first_part) {
-      DPrintf2("RestoreStack: tid=%d trace=%p no trace parts\n", tid, trace);
+      DPrintf2("RestoreStack: tid=%d trace=%p no trace parts\n", tid,
+               (void *)trace);
       return false;
     }
     last_part = trace->parts.Back();
@@ -527,7 +528,7 @@ bool RestoreStack(EventType type, Sid sid, Epoch epoch, uptr addr, uptr size,
   bool is_atomic = typ & kAccessAtomic;
   bool is_free = typ & kAccessFree;
   DPrintf2("RestoreStack: tid=%d parts=[%p-%p] last_pos=%p\n", tid,
-           trace->parts.Front(), last_part, last_pos);
+           (void *)trace->parts.Front(), (void *)last_part, (void *)last_pos);
   TraceReplay(
       trace, last_part, last_pos, sid, epoch,
       [&](Sid ev_sid, Epoch ev_epoch, Event *evp) {



More information about the llvm-commits mailing list