Skip to content

Commit 9536b02

Browse files
DimitryAndrictru
authored andcommitted
[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. (cherry picked from commit 62bd08a)
1 parent 1af23c5 commit 9536b02

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
@@ -2242,25 +2242,25 @@ void SignalContext::DumpAllRegisters(void *context) {
22422242
# elif SANITIZER_FREEBSD
22432243
# if defined(__x86_64__)
22442244
Report("Register values:\n");
2245-
Printf("rax = 0x%016llx ", ucontext->uc_mcontext.mc_rax);
2246-
Printf("rbx = 0x%016llx ", ucontext->uc_mcontext.mc_rbx);
2247-
Printf("rcx = 0x%016llx ", ucontext->uc_mcontext.mc_rcx);
2248-
Printf("rdx = 0x%016llx ", ucontext->uc_mcontext.mc_rdx);
2245+
Printf("rax = 0x%016lx ", ucontext->uc_mcontext.mc_rax);
2246+
Printf("rbx = 0x%016lx ", ucontext->uc_mcontext.mc_rbx);
2247+
Printf("rcx = 0x%016lx ", ucontext->uc_mcontext.mc_rcx);
2248+
Printf("rdx = 0x%016lx ", ucontext->uc_mcontext.mc_rdx);
22492249
Printf("\n");
2250-
Printf("rdi = 0x%016llx ", ucontext->uc_mcontext.mc_rdi);
2251-
Printf("rsi = 0x%016llx ", ucontext->uc_mcontext.mc_rsi);
2252-
Printf("rbp = 0x%016llx ", ucontext->uc_mcontext.mc_rbp);
2253-
Printf("rsp = 0x%016llx ", ucontext->uc_mcontext.mc_rsp);
2250+
Printf("rdi = 0x%016lx ", ucontext->uc_mcontext.mc_rdi);
2251+
Printf("rsi = 0x%016lx ", ucontext->uc_mcontext.mc_rsi);
2252+
Printf("rbp = 0x%016lx ", ucontext->uc_mcontext.mc_rbp);
2253+
Printf("rsp = 0x%016lx ", ucontext->uc_mcontext.mc_rsp);
22542254
Printf("\n");
2255-
Printf(" r8 = 0x%016llx ", ucontext->uc_mcontext.mc_r8);
2256-
Printf(" r9 = 0x%016llx ", ucontext->uc_mcontext.mc_r9);
2257-
Printf("r10 = 0x%016llx ", ucontext->uc_mcontext.mc_r10);
2258-
Printf("r11 = 0x%016llx ", ucontext->uc_mcontext.mc_r11);
2255+
Printf(" r8 = 0x%016lx ", ucontext->uc_mcontext.mc_r8);
2256+
Printf(" r9 = 0x%016lx ", ucontext->uc_mcontext.mc_r9);
2257+
Printf("r10 = 0x%016lx ", ucontext->uc_mcontext.mc_r10);
2258+
Printf("r11 = 0x%016lx ", ucontext->uc_mcontext.mc_r11);
22592259
Printf("\n");
2260-
Printf("r12 = 0x%016llx ", ucontext->uc_mcontext.mc_r12);
2261-
Printf("r13 = 0x%016llx ", ucontext->uc_mcontext.mc_r13);
2262-
Printf("r14 = 0x%016llx ", ucontext->uc_mcontext.mc_r14);
2263-
Printf("r15 = 0x%016llx ", ucontext->uc_mcontext.mc_r15);
2260+
Printf("r12 = 0x%016lx ", ucontext->uc_mcontext.mc_r12);
2261+
Printf("r13 = 0x%016lx ", ucontext->uc_mcontext.mc_r13);
2262+
Printf("r14 = 0x%016lx ", ucontext->uc_mcontext.mc_r14);
2263+
Printf("r15 = 0x%016lx ", ucontext->uc_mcontext.mc_r15);
22642264
Printf("\n");
22652265
# elif defined(__i386__)
22662266
Report("Register values:\n");

0 commit comments

Comments
 (0)