Building xray with recent clang on a 64-bit system results in a number
of -Wformat warnings:
compiler-rt/lib/xray/xray_allocator.h:70:11: warning: format specifies type 'int' but the argument has type '__sanitizer::uptr' (aka 'unsigned long') [-Wformat] RoundedSize, B); ^~~~~~~~~~~ compiler-rt/lib/xray/xray_allocator.h:119:11: warning: format specifies type 'int' but the argument has type '__sanitizer::uptr' (aka 'unsigned long') [-Wformat] RoundedSize, B); ^~~~~~~~~~~
Since __sanitizer::uptr has the same size as size_t, these can be
fixed by using the printf specifier %zu.
compiler-rt/lib/xray/xray_basic_logging.cpp:348:46: warning: format specifies type 'int' but the argument has type '__sanitizer::tid_t' (aka 'unsigned long long') [-Wformat] Report("Cleaned up log for TID: %d\n", GetTid()); ~~ ^~~~~~~~ %llu compiler-rt/lib/xray/xray_basic_logging.cpp:353:62: warning: format specifies type 'int' but the argument has type '__sanitizer::tid_t' (aka 'unsigned long long') [-Wformat] Report("Skipping buffer for TID: %d; Offset = %llu\n", GetTid(), ~~ ^~~~~~~~ %llu
Since __sanitizer::tid_t is effectively declared as `unsigned long
long`, these can be fixed by using the printf specifier %llu.
compiler-rt/lib/xray/xray_basic_logging.cpp:354:14: warning: format specifies type 'unsigned long long' but the argument has type 'size_t' (aka 'unsigned long') [-Wformat] TLD.BufferOffset); ^~~~~~~~~~~~~~~~
Since BufferOffset is declared as size_t, this one can be fixed by
using %zu as a printf specifier.
compiler-rt/lib/xray/xray_interface.cpp:172:50: warning: format specifies type 'int' but the argument has type 'uint64_t' (aka 'unsigned long') [-Wformat] Report("Unsupported sled kind '%d' @%04x\n", Sled.Address, int(Sled.Kind)); ~~ ^~~~~~~~~~~~ %lu
Since `xray::SledEntry::Address is declared as uint64_t, this one
can be fixed by using PRIu64, and adding <cinttypes>.
compiler-rt/lib/xray/xray_interface.cpp:308:62: warning: format specifies type 'long long' but the argument has type 'size_t' (aka 'unsigned long') [-Wformat] Report("System page size is not a power of two: %lld\n", PageSize); ~~~~ ^~~~~~~~ %zu compiler-rt/lib/xray/xray_interface.cpp:359:64: warning: format specifies type 'long long' but the argument has type 'size_t' (aka 'unsigned long') [-Wformat] Report("Provided page size is not a power of two: %lld\n", PageSize); ~~~~ ^~~~~~~~ %zu
Since PageSize is declared as size_t, these can be fixed by using
%zu as a printf specifier.
Drop trailing dot while updating messages. https://llvm.org/docs/CodingStandards.html#error-and-warning-messages