Skip to content

Commit 62bd08a

Browse files
[compiler-rt] Fix format string warnings in FreeBSD DumpAllRegisters (llvm#101072)
On FreeBSD amd64 (aka x86_64), registers are always defined as `int64_t`, which in turn is equivalent to `long`. This leads to a number of warnings in `DumpAllRegisters()`: compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp:2245:31: warning: format specifies type 'unsigned long long' but the argument has type '__register_t' (aka 'long') [-Wformat] 2245 | Printf("rax = 0x%016llx ", ucontext->uc_mcontext.mc_rax); | ~~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ | %016lx compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp:2246:31: warning: format specifies type 'unsigned long long' but the argument has type '__register_t' (aka 'long') [-Wformat] 2246 | Printf("rbx = 0x%016llx ", ucontext->uc_mcontext.mc_rbx); | ~~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ | %016lx ... more of these ... Fix it by using the `lx` format.
1 parent 26e455b commit 62bd08a

File tree

1 file changed

+16
-16
lines changed

1 file changed

+16
-16
lines changed

compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2386,25 +2386,25 @@ void SignalContext::DumpAllRegisters(void *context) {
23862386
# elif SANITIZER_FREEBSD
23872387
# if defined(__x86_64__)
23882388
Report("Register values:\n");
2389-
Printf("rax = 0x%016llx ", ucontext->uc_mcontext.mc_rax);
2390-
Printf("rbx = 0x%016llx ", ucontext->uc_mcontext.mc_rbx);
2391-
Printf("rcx = 0x%016llx ", ucontext->uc_mcontext.mc_rcx);
2392-
Printf("rdx = 0x%016llx ", ucontext->uc_mcontext.mc_rdx);
2389+
Printf("rax = 0x%016lx ", ucontext->uc_mcontext.mc_rax);
2390+
Printf("rbx = 0x%016lx ", ucontext->uc_mcontext.mc_rbx);
2391+
Printf("rcx = 0x%016lx ", ucontext->uc_mcontext.mc_rcx);
2392+
Printf("rdx = 0x%016lx ", ucontext->uc_mcontext.mc_rdx);
23932393
Printf("\n");
2394-
Printf("rdi = 0x%016llx ", ucontext->uc_mcontext.mc_rdi);
2395-
Printf("rsi = 0x%016llx ", ucontext->uc_mcontext.mc_rsi);
2396-
Printf("rbp = 0x%016llx ", ucontext->uc_mcontext.mc_rbp);
2397-
Printf("rsp = 0x%016llx ", ucontext->uc_mcontext.mc_rsp);
2394+
Printf("rdi = 0x%016lx ", ucontext->uc_mcontext.mc_rdi);
2395+
Printf("rsi = 0x%016lx ", ucontext->uc_mcontext.mc_rsi);
2396+
Printf("rbp = 0x%016lx ", ucontext->uc_mcontext.mc_rbp);
2397+
Printf("rsp = 0x%016lx ", ucontext->uc_mcontext.mc_rsp);
23982398
Printf("\n");
2399-
Printf(" r8 = 0x%016llx ", ucontext->uc_mcontext.mc_r8);
2400-
Printf(" r9 = 0x%016llx ", ucontext->uc_mcontext.mc_r9);
2401-
Printf("r10 = 0x%016llx ", ucontext->uc_mcontext.mc_r10);
2402-
Printf("r11 = 0x%016llx ", ucontext->uc_mcontext.mc_r11);
2399+
Printf(" r8 = 0x%016lx ", ucontext->uc_mcontext.mc_r8);
2400+
Printf(" r9 = 0x%016lx ", ucontext->uc_mcontext.mc_r9);
2401+
Printf("r10 = 0x%016lx ", ucontext->uc_mcontext.mc_r10);
2402+
Printf("r11 = 0x%016lx ", ucontext->uc_mcontext.mc_r11);
24032403
Printf("\n");
2404-
Printf("r12 = 0x%016llx ", ucontext->uc_mcontext.mc_r12);
2405-
Printf("r13 = 0x%016llx ", ucontext->uc_mcontext.mc_r13);
2406-
Printf("r14 = 0x%016llx ", ucontext->uc_mcontext.mc_r14);
2407-
Printf("r15 = 0x%016llx ", ucontext->uc_mcontext.mc_r15);
2404+
Printf("r12 = 0x%016lx ", ucontext->uc_mcontext.mc_r12);
2405+
Printf("r13 = 0x%016lx ", ucontext->uc_mcontext.mc_r13);
2406+
Printf("r14 = 0x%016lx ", ucontext->uc_mcontext.mc_r14);
2407+
Printf("r15 = 0x%016lx ", ucontext->uc_mcontext.mc_r15);
24082408
Printf("\n");
24092409
# elif defined(__i386__)
24102410
Report("Register values:\n");

0 commit comments

Comments
 (0)