Building cfi with recent clang on a 64-bit system results in the
following warnings:
compiler-rt/lib/cfi/cfi.cpp:233:64: warning: format specifies type 'void *' but the argument has type '__sanitizer::uptr' (aka 'unsigned long') [-Wformat] VReport(1, "Can not handle: symtab > strtab (%p > %zx)\n", symtab, strtab); ~~ ^~~~~~ %lu compiler-rt/lib/sanitizer_common/sanitizer_common.h:231:46: note: expanded from macro 'VReport' if ((uptr)Verbosity() >= (level)) Report(__VA_ARGS__); \ ^~~~~~~~~~~ compiler-rt/lib/cfi/cfi.cpp:253:59: warning: format specifies type 'void *' but the argument has type '__sanitizer::uptr' (aka 'unsigned long') [-Wformat] VReport(1, "Can not handle: symtab %p, strtab %zx\n", symtab, strtab); ~~ ^~~~~~ %lu compiler-rt/lib/sanitizer_common/sanitizer_common.h:231:46: note: expanded from macro 'VReport' if ((uptr)Verbosity() >= (level)) Report(__VA_ARGS__); \ ^~~~~~~~~~~
Since __sanitizer::uptr has the same size as size_t, consistently
use %z as a printf specifier.