forked from OSchip/llvm-project
![]() 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. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D114469 |
||
---|---|---|
.. | ||
BlocksRuntime | ||
asan | ||
builtins | ||
cfi | ||
crt | ||
dfsan | ||
fuzzer | ||
gwp_asan | ||
hwasan | ||
interception | ||
lsan | ||
memprof | ||
msan | ||
orc | ||
profile | ||
safestack | ||
sanitizer_common | ||
scudo | ||
stats | ||
tsan | ||
ubsan | ||
ubsan_minimal | ||
xray | ||
CMakeLists.txt |