在 2024/11/20 22:10, Anand Jain 写道:
Fix format string warnings when printing blksize_t values that vary across architectures. The warning occurs because blksize_t is defined differently between architectures: aarch64 architectures blksize_t is int, on x86-64 it's long-int. Cast the values to long. Fixes warnings as below. seek_sanity_test.c:110:45: warning: format '%ld' expects argument of type 'long int', but argument 3 has type 'blksize_t' {aka 'int'} attr_replace_test.c:70:22: warning: format '%ld' expects argument of type 'long int', but argument 3 has type '__blksize_t' {aka 'int'}
Why not just use %zu instead? Thanks, Qu
Signed-off-by: Anand Jain <anand.jain@xxxxxxxxxx> --- src/attr_replace_test.c | 2 +- src/seek_sanity_test.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/attr_replace_test.c b/src/attr_replace_test.c index 1218e7264c8f..5d560a633361 100644 --- a/src/attr_replace_test.c +++ b/src/attr_replace_test.c @@ -67,7 +67,7 @@ int main(int argc, char *argv[]) if (ret < 0) die(); size = sbuf.st_blksize * 3 / 4; if (!size) - fail("Invalid st_blksize(%ld)\n", sbuf.st_blksize); + fail("Invalid st_blksize(%ld)\n", (long)sbuf.st_blksize); size = MIN(size, maxsize); value = malloc(size); if (!value) diff --git a/src/seek_sanity_test.c b/src/seek_sanity_test.c index a61ed3da9a8f..c5930357911f 100644 --- a/src/seek_sanity_test.c +++ b/src/seek_sanity_test.c @@ -107,7 +107,7 @@ static int get_io_sizes(int fd) offset += pos ? 0 : 1; alloc_size = offset; done: - fprintf(stdout, "Allocation size: %ld\n", alloc_size); + fprintf(stdout, "Allocation size: %ld\n", (long)alloc_size); return 0; fail: