From c641cafbc387849510d7f408e85f72fa3608916d Mon Sep 17 00:00:00 2001 From: Thorsten Glaser Date: Sun, 17 Feb 2013 16:50:58 +0000 Subject: use architecture-specific ssize_t definition MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit after change 32822 was rejected, this is the more light-weight version of the fix: libc/include/sys/types.h already - via libc/kernel/common/linux/posix_types.h - includes a definition of __kernel_ssize_t from libc/kernel/arch-*/asm/posix_types.h which is architecture-specific, toolchain-agnostic and also gets rid of the gcc -Wformat warning (which it issues correctly, since this i̲s̲ indeed a bug in bionic) Change-Id: Ie4503ab16628bc25815a836d07556f665e9795c7 --- tests/stdio_test.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'tests/stdio_test.cpp') diff --git a/tests/stdio_test.cpp b/tests/stdio_test.cpp index 70a71fb87d..d2311fd547 100644 --- a/tests/stdio_test.cpp +++ b/tests/stdio_test.cpp @@ -169,3 +169,12 @@ TEST(stdio, getline_invalid) { ASSERT_EQ(getline(&buffer, &buffer_length, fp), -1); ASSERT_EQ(EBADF, errno); } + +TEST(stdio, printf_ssize_t) { + // We used to have a ssize_t definition that confused GCC into saying: + // error: format '%zd' expects argument of type 'signed size_t', + // but argument 4 has type 'ssize_t {aka long int}' [-Werror=format] + ssize_t v = 1; + char buf[32]; + snprintf(buf, sizeof(buf), "%zd", v); +} -- cgit v1.2.3