Fix clang warnings in bionic.

This fixes a few diverse issues that clang warns on in bionic. First,
it specifies the appropriate converted types for format specifiers.
The "h" and "hh" modifiers specify that the user is passing a short or
char respectively. We were passing int deliberately in both cases and
relying on the compiler to implicitly downcast to the smaller type.
We also remove the non-standard "d" suffix from our double-precision
floating point constant. This is an extension for gcc that clang does
not implement. The third fix is to mark the c1 variable as unused,
since it truly is neither read nor written.

Change-Id: I4793352b9d3e58f1f4cac9e7581ef4b2a70b43c7
This commit is contained in:
Stephen Hines 2013-10-11 16:03:21 -07:00
parent eda2679e30
commit 6c7b3cb056
3 changed files with 6 additions and 6 deletions

View File

@ -53,10 +53,10 @@ TEST(libc_logging, smoke) {
__libc_format_buffer(buf, sizeof(buf), "a%db", -8123);
EXPECT_STREQ("a-8123b", buf);
__libc_format_buffer(buf, sizeof(buf), "a%hdb", 0x7fff0010);
__libc_format_buffer(buf, sizeof(buf), "a%hdb", static_cast<short>(0x7fff0010));
EXPECT_STREQ("a16b", buf);
__libc_format_buffer(buf, sizeof(buf), "a%hhdb", 0x7fffff10);
__libc_format_buffer(buf, sizeof(buf), "a%hhdb", static_cast<char>(0x7fffff10));
EXPECT_STREQ("a16b", buf);
__libc_format_buffer(buf, sizeof(buf), "a%lldb", 0x1000000000LL);

View File

@ -48,7 +48,7 @@ static void noinline do_crash() {
}
static void noinline foo() {
char c1 __attribute__((cleanup(foo_cleanup)));
char c1 __attribute__((cleanup(foo_cleanup))) unused;
do_crash();
}

View File

@ -226,10 +226,10 @@ TEST(stdio, snprintf_smoke) {
snprintf(buf, sizeof(buf), "a%db", -8123);
EXPECT_STREQ("a-8123b", buf);
snprintf(buf, sizeof(buf), "a%hdb", 0x7fff0010);
snprintf(buf, sizeof(buf), "a%hdb", static_cast<short>(0x7fff0010));
EXPECT_STREQ("a16b", buf);
snprintf(buf, sizeof(buf), "a%hhdb", 0x7fffff10);
snprintf(buf, sizeof(buf), "a%hhdb", static_cast<char>(0x7fffff10));
EXPECT_STREQ("a16b", buf);
snprintf(buf, sizeof(buf), "a%lldb", 0x1000000000LL);
@ -281,7 +281,7 @@ TEST(stdio, snprintf_smoke) {
snprintf(buf, sizeof(buf), "a_%f_b", 1.23f);
EXPECT_STREQ("a_1.230000_b", buf);
snprintf(buf, sizeof(buf), "a_%g_b", 3.14d);
snprintf(buf, sizeof(buf), "a_%g_b", 3.14);
EXPECT_STREQ("a_3.14_b", buf);
}