6001c87cbc
At runtime, vsnprintf (and android::base::StringPrintf which calls it) call a mingw version of vsnprintf, not the vsnprintf from MSVCRT.DLL. The mingw version properly understands %zd and PRIu64 (the latter, provided that you #include <inttypes.h>). The problem was that android::base::StringPrintf was causing compile-time errors saying that %zd and PRIu64 were not recognized. It seems that this was because the attribute on the function prototypes specified `printf' instead of `gnu_printf'. Once that was fixed to match vsnprintf's attribute, the warnings went away. This uses similar preprocessor techniques as <android/log.h>. Also restore a %zd usage to avoid a static_cast<>, and make print_transfer_progress()'s format string compile-time checkable (and tweak some types and %llu => PRIu64). Change-Id: I80b31b9994858a28cb7c6847143b86108b8ab842 Signed-off-by: Spencer Low <CompareAndSwap@gmail.com> |
||
---|---|---|
.. | ||
include/base | ||
.clang-format | ||
Android.mk | ||
CPPLINT.cfg | ||
file.cpp | ||
file_test.cpp | ||
logging.cpp | ||
logging_test.cpp | ||
stringprintf.cpp | ||
stringprintf_test.cpp | ||
strings.cpp | ||
strings_test.cpp | ||
test_main.cpp | ||
test_utils.cpp | ||
test_utils.h |