Re: [PATCH] fast_export.c: Fix a compiler warning
- From
Florian Achleitner <florian.achleitner.2.6.31@gmail.com>
- Date
- Aug 20, 2012, 06:19 UTC
- Message-ID
- <2715225.vOk3BtNY6o@flomedio>
- In-Reply-To
- <5031063E.3090405@ramsay1.demon.co.uk>
On Sunday 19 August 2012 16:29:02 Ramsay Jones wrote:
Show 21 quoted lines
> In particular, gcc complains thus:
>
> CC vcs-svn/fast_export.o
> vcs-svn/fast_export.c: In function 'fast_export_begin_note':
> vcs-svn/fast_export.c:77: warning: long long unsigned int format, \
> different type arg (arg 2)
>
> In order to fix the warning, we cast the second size_t argument in
> the call to printf to uintmax_t.
>
> Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
> ---
>
> Hi Florian,
>
> If you need to re-roll your patches in the 'fa/remote-svn' branch, could
> you please squash this fix into them. [This was implemented on top of
> commit 2ce959ba, but you will probably want to make the equivalent change
> to commit d319a37c ("Create a note for every imported commit containing
> svn metadata", 17-08-2012) instead. Note that, because of the context
> lines in the patch, it won't apply as-is.]Ok, I'll add it to the next version. This warning only occurs when building for 32bit, thus I never saw it. There would be a format flag for printf that sprecifies the platform's size_t integer type: "z". Probalby we should use it instead? I don't know how widely supported it is.
Show 5 quoted lines
> > Thanks! > > ATB, > Ramsay Jones
Thanks, Florian
Show 17 quoted lines
>
> vcs-svn/fast_export.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/vcs-svn/fast_export.c b/vcs-svn/fast_export.c
> index c780d32..dd09c7d 100644
> --- a/vcs-svn/fast_export.c
> +++ b/vcs-svn/fast_export.c
> @@ -74,7 +74,7 @@ void fast_export_begin_note(uint32_t revision, const char
> *author, size_t loglen = strlen(log);
> printf("commit %s\n", note_ref);
> printf("committer %s <%s@%s> %ld +0000\n", author, author, "local",
> timestamp); - printf("data %"PRIuMAX"\n", loglen);
> + printf("data %"PRIuMAX"\n", (uintmax_t) loglen);
> fwrite(log, loglen, 1, stdout);
> if (firstnote) {
> if (revision > 1)