2015-06-03 19:38:41

by Frans Klaver

[permalink] [raw]
Subject: [PATCH] Doc: networking: txtimestamp: fix printf format warning

Documentation/networking/timestamping/txtimestamp.c: In function ‘__print_timestamp’:
Documentation/networking/timestamping/txtimestamp.c:99:3: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 3 has type ‘int64_t’ [-Wformat=]
fprintf(stderr, " (%+ld us)", cur_ms - prev_ms);

int64_t differs per platform, so a cast is required.

Signed-off-by: Frans Klaver <[email protected]>
---
Documentation/networking/timestamping/txtimestamp.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/Documentation/networking/timestamping/txtimestamp.c b/Documentation/networking/timestamping/txtimestamp.c
index 8217510..2d107c1 100644
--- a/Documentation/networking/timestamping/txtimestamp.c
+++ b/Documentation/networking/timestamping/txtimestamp.c
@@ -96,7 +96,8 @@ static void __print_timestamp(const char *name, struct timespec *cur,
prev_ms = (long) ts_prev.tv_sec * 1000 * 1000;
prev_ms += ts_prev.tv_nsec / 1000;

- fprintf(stderr, " (%+ld us)", cur_ms - prev_ms);
+ fprintf(stderr, " (%+lld us)",
+ (long long int)(cur_ms - prev_ms));
}

ts_prev = *cur;
--
2.4.0


2015-06-04 17:36:22

by Richard Cochran

[permalink] [raw]
Subject: Re: [PATCH] Doc: networking: txtimestamp: fix printf format warning

On Wed, Jun 03, 2015 at 09:38:39PM +0200, Frans Klaver wrote:
> Documentation/networking/timestamping/txtimestamp.c: In function ‘__print_timestamp’:
> Documentation/networking/timestamping/txtimestamp.c:99:3: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 3 has type ‘int64_t’ [-Wformat=]
> fprintf(stderr, " (%+ld us)", cur_ms - prev_ms);
>
> int64_t differs per platform, so a cast is required.

No cast is needed. Use PRId64 in the format string instead.

Thanks,
Richard

2015-06-04 18:06:10

by Frans Klaver

[permalink] [raw]
Subject: Re: [PATCH] Doc: networking: txtimestamp: fix printf format warning

On 4 June 2015 19:36:12 CEST, Richard Cochran <[email protected]> wrote:
>On Wed, Jun 03, 2015 at 09:38:39PM +0200, Frans Klaver wrote:
>> Documentation/networking/timestamping/txtimestamp.c: In function
>‘__print_timestamp’:
>> Documentation/networking/timestamping/txtimestamp.c:99:3: warning:
>format ‘%ld’ expects argument of type ‘long int’, but argument 3 has
>type ‘int64_t’ [-Wformat=]
>> fprintf(stderr, " (%+ld us)", cur_ms - prev_ms);
>>
>> int64_t differs per platform, so a cast is required.
>
>No cast is needed. Use PRId64 in the format string instead.

Wow, I can't believe I've never run into those...

Will resend.

Thanks,
Frans