
On Wed, Aug 27, 2014 at 10:27:19AM +1200, Chris Packham wrote:
On Wed, Aug 27, 2014 at 2:02 AM, Alexey Brodkin Alexey.Brodkin@synopsys.com wrote:
bounce_buffer->len_aligned is of type "size_t", but on some arches/compilers "size_t" might be an alias to whether "int", "long" or their "signed/unsigned" flavors.
So to make compiler happy we explicitly cast to "int" which is expected in printf for "%d" format.
this fixes following warning: --->--- common/bouncebuf.c: In function ‘addr_aligned’: common/bouncebuf.c:26:3: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘size_t’ [-Wformat=] debug("Unaligned buffer length %d\n", /*(int)*/state->len); ^ --->---
Signed-off-by: Alexey Brodkin abrodkin@synopsys.com Cc: Vasili Galka vvv444@gmail.com Cc: Tom Rini trini@ti.com
common/bouncebuf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/common/bouncebuf.c b/common/bouncebuf.c index 9eece6d..0828d4b 100644 --- a/common/bouncebuf.c +++ b/common/bouncebuf.c @@ -23,7 +23,7 @@ static int addr_aligned(struct bounce_buffer *state)
/* Check if length is aligned */ if (state->len != state->len_aligned) {
debug("Unaligned buffer length %d\n", state->len);
debug("Unaligned buffer length %d\n", (int)state->len);
Another way of fixing this would be to use %zu or %zd instead of %d. Although that is a C99 addition so I'm not sure how much people care about really old compilers.
And %zd has other usages in the codebase so please use that, thanks.