diff mbox series

[1/2] syscalls/statx01: Fix compiler warning because of PRIu64

Message ID 1637310522-19620-1-git-send-email-xuyang2018.jy@fujitsu.com
State Accepted
Headers show
Series [1/2] syscalls/statx01: Fix compiler warning because of PRIu64 | expand

Commit Message

Yang Xu Nov. 19, 2021, 8:28 a.m. UTC
warning: format ‘%lu’ expects argument of type ‘long unsigned int’,
but argument 5 has type ‘__u64’ {aka ‘long long unsigned int’}

Signed-off-by: Yang Xu <xuyang2018.jy@fujitsu.com>
---
 testcases/kernel/syscalls/statx/statx01.c | 8 ++++----
 testcases/kernel/syscalls/statx/statx02.c | 4 ++--
 2 files changed, 6 insertions(+), 6 deletions(-)

Comments

Cyril Hrubis Nov. 19, 2021, 10:52 a.m. UTC | #1
Hi!
> warning: format ???%lu??? expects argument of type ???long unsigned int???,
> but argument 5 has type ???__u64??? {aka ???long long unsigned int???}

This is strange, the stx_size is either defined as uint64_t in our
fallback code or as __u64 in the system headers. It should really match
the PRIu64.

I see the warnings on my system as well, it looks like
/usr/include/asm-generic/int-ll64.h is used even on 64bit system e.g.
x86_64 that does not make any sense.

> Signed-off-by: Yang Xu <xuyang2018.jy@fujitsu.com>
> ---
>  testcases/kernel/syscalls/statx/statx01.c | 8 ++++----
>  testcases/kernel/syscalls/statx/statx02.c | 4 ++--
>  2 files changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/testcases/kernel/syscalls/statx/statx01.c b/testcases/kernel/syscalls/statx/statx01.c
> index 2358dd7bc..1289366b9 100644
> --- a/testcases/kernel/syscalls/statx/statx01.c
> +++ b/testcases/kernel/syscalls/statx/statx01.c
> @@ -79,11 +79,11 @@ static void test_normal_file(void)
>  
>  	if (buff.stx_size == SIZE)
>  		tst_res(TPASS,
> -			"stx_size(%"PRIu64") is correct", buff.stx_size);
> +			"stx_size(%"PRIu64") is correct", (uint64_t)buff.stx_size);
>  	else
>  		tst_res(TFAIL,
>  			"stx_size(%"PRIu64") is different from expected(%u)",
> -			buff.stx_size, SIZE);
> +			(uint64_t)buff.stx_size, SIZE);
>  
>  	if ((buff.stx_mode & ~(S_IFMT)) == MODE)
>  		tst_res(TPASS, "stx_mode(%u) is correct", buff.stx_mode);
> @@ -94,10 +94,10 @@ static void test_normal_file(void)
>  
>  	if (buff.stx_blocks <= buff.stx_blksize/512 * 2)
>  		tst_res(TPASS, "stx_blocks(%"PRIu64") is valid",
> -			buff.stx_blocks);
> +			(uint64_t)buff.stx_blocks);
>  	else
>  		tst_res(TFAIL, "stx_blocks(%"PRIu64") is invalid",
> -			buff.stx_blocks);
> +			(uint64_t)buff.stx_blocks);
>  
>  }
>  
> diff --git a/testcases/kernel/syscalls/statx/statx02.c b/testcases/kernel/syscalls/statx/statx02.c
> index 08ea940cb..63133a3b7 100644
> --- a/testcases/kernel/syscalls/statx/statx02.c
> +++ b/testcases/kernel/syscalls/statx/statx02.c
> @@ -50,11 +50,11 @@ static void test_empty_path(void)
>  
>  	if (buf.stx_size == SIZE)
>  		tst_res(TPASS,
> -			"stx_size(%"PRIu64") is correct", buf.stx_size);
> +			"stx_size(%"PRIu64") is correct", (uint64_t)buf.stx_size);
>  	else
>  		tst_res(TFAIL,
>  			"stx_size(%"PRIu64") is not same as expected(%u)",
> -			buf.stx_size, SIZE);
> +			(uint64_t)buf.stx_size, SIZE);
>  
>  }
>  
> -- 
> 2.23.0
> 
> 
> -- 
> Mailing list info: https://lists.linux.it/listinfo/ltp
Cyril Hrubis Nov. 29, 2021, 12:26 p.m. UTC | #2
Hi!
Looks like the __u64 is not going to be compatible in userspace and we
cannot do better than explicit casts anytime soon.

Reviewed-by: Cyril Hrubis <chrubis@suse.cz>
Yang Xu Nov. 30, 2021, 3:06 a.m. UTC | #3
Hi Cyril
> Hi!
> Looks like the __u64 is not going to be compatible in userspace and we
> cannot do better than explicit casts anytime soon.
>
> Reviewed-by: Cyril Hrubis<chrubis@suse.cz>
Merged. Thanks for your effort!

Best Regards
Yang Xu
>
diff mbox series

Patch

diff --git a/testcases/kernel/syscalls/statx/statx01.c b/testcases/kernel/syscalls/statx/statx01.c
index 2358dd7bc..1289366b9 100644
--- a/testcases/kernel/syscalls/statx/statx01.c
+++ b/testcases/kernel/syscalls/statx/statx01.c
@@ -79,11 +79,11 @@  static void test_normal_file(void)
 
 	if (buff.stx_size == SIZE)
 		tst_res(TPASS,
-			"stx_size(%"PRIu64") is correct", buff.stx_size);
+			"stx_size(%"PRIu64") is correct", (uint64_t)buff.stx_size);
 	else
 		tst_res(TFAIL,
 			"stx_size(%"PRIu64") is different from expected(%u)",
-			buff.stx_size, SIZE);
+			(uint64_t)buff.stx_size, SIZE);
 
 	if ((buff.stx_mode & ~(S_IFMT)) == MODE)
 		tst_res(TPASS, "stx_mode(%u) is correct", buff.stx_mode);
@@ -94,10 +94,10 @@  static void test_normal_file(void)
 
 	if (buff.stx_blocks <= buff.stx_blksize/512 * 2)
 		tst_res(TPASS, "stx_blocks(%"PRIu64") is valid",
-			buff.stx_blocks);
+			(uint64_t)buff.stx_blocks);
 	else
 		tst_res(TFAIL, "stx_blocks(%"PRIu64") is invalid",
-			buff.stx_blocks);
+			(uint64_t)buff.stx_blocks);
 
 }
 
diff --git a/testcases/kernel/syscalls/statx/statx02.c b/testcases/kernel/syscalls/statx/statx02.c
index 08ea940cb..63133a3b7 100644
--- a/testcases/kernel/syscalls/statx/statx02.c
+++ b/testcases/kernel/syscalls/statx/statx02.c
@@ -50,11 +50,11 @@  static void test_empty_path(void)
 
 	if (buf.stx_size == SIZE)
 		tst_res(TPASS,
-			"stx_size(%"PRIu64") is correct", buf.stx_size);
+			"stx_size(%"PRIu64") is correct", (uint64_t)buf.stx_size);
 	else
 		tst_res(TFAIL,
 			"stx_size(%"PRIu64") is not same as expected(%u)",
-			buf.stx_size, SIZE);
+			(uint64_t)buf.stx_size, SIZE);
 
 }