Re: [PATCH] selftests: memfd_test.c: fix compilation warning.

From: lei yang
Date: Tue Nov 07 2017 - 22:22:42 EST


I got the same warning even with ubuntu new distro, this patch fixed this issue.

$ gcc --version
gcc (Ubuntu 6.3.0-12ubuntu2) 6.3.0 20170406
Copyright (C) 2016 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

$ make -v
GNU Make 4.1
Built for x86_64-pc-linux-gnu
Copyright (C) 1988-2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
$ uname -a
Linux pek-lyang0-u17 4.10.0-38-generic #42-Ubuntu SMP Tue Oct 10 13:24:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux


---------------------

memfd_test.c: In function mfd_assert_grow_write:
memfd_test.c:517:19: warning: format %d expects argument of type int, but argument 2 has type size_t {aka long unsigned int} [-Wformat=]
printf("malloc(%d) failed: %m\n", mfd_def_size * 8);
^
memfd_test.c: In function mfd_fail_grow_write:
memfd_test.c:537:19: warning: format %d expects argument of type int, but argument 2 has type size_t {aka long unsigned int} [-Wformat=]
printf("malloc(%d) failed: %m\n", mfd_def_size * 8);



Lei


On 2017å11æ07æ 07:46, Shuah Khan wrote:
On 11/05/2017 03:56 AM, Lei Yang wrote:
Replace '%d' by '%zu' to fix the following compilation warning.

memfd_test.c:517:3: warning: format â%dâ expects argument of
type âintâ,but argument 2 has type âsize_tâ [-Wformat=]
printf("malloc(%d) failed: %m\n", mfd_def_size * 8);
^
memfd_test.c: In function âmfd_fail_grow_writeâ:
memfd_test.c:537:3: warning: format â%dâ expects argument
of type âintâ,but argument 2 has type âsize_tâ [-Wformat=]
printf("malloc(%d) failed: %m\n", mfd_def_size * 8);

Signed-off-by: Lei Yang <Lei.Yang@xxxxxxxxxxxxx>
---
tools/testing/selftests/memfd/memfd_test.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tools/testing/selftests/memfd/memfd_test.c b/tools/testing/selftests/memfd/memfd_test.c
index f94c6d1..95df9e6 100644
--- a/tools/testing/selftests/memfd/memfd_test.c
+++ b/tools/testing/selftests/memfd/memfd_test.c
@@ -514,7 +514,7 @@ static void mfd_assert_grow_write(int fd)
buf = malloc(mfd_def_size * 8);
if (!buf) {
- printf("malloc(%d) failed: %m\n", mfd_def_size * 8);
+ printf("malloc(%zu) failed: %m\n", mfd_def_size * 8);
abort();
}
@@ -534,7 +534,7 @@ static void mfd_fail_grow_write(int fd)
buf = malloc(mfd_def_size * 8);
if (!buf) {
- printf("malloc(%d) failed: %m\n", mfd_def_size * 8);
+ printf("malloc(%zu) failed: %m\n", mfd_def_size * 8);
abort();
}

Relates to gcc version perhaps. What's your gcc version?

thanks,
-- Shuah