From: Florian Weimer <fweimer@redhat.com>
To: Cyril Hrubis <chrubis@suse.cz>
Cc: linux-api@vger.kernel.org, ltp@lists.linux.it, libc-alpha@sourceware.org
Subject: Re: asm-generic/int-ll64.h wrongly used on x86_64?
Date: Fri, 19 Nov 2021 14:11:43 +0100 [thread overview]
Message-ID: <877dd4cmsw.fsf@oldenburg.str.redhat.com> (raw)
In-Reply-To: <YZearmiVEw9/eor9@yuki> (Cyril Hrubis's message of "Fri, 19 Nov 2021 13:38:06 +0100")
* Cyril Hrubis:
> Hi!
> I was writing simple userspace code that prints the values from the
> struct statx the line in question looks like:
>
> printf("%" PRIu64 "\n", st.stx_size);
>
> This unexpectedly gives me warning on x86_64:
>
> warning: format '%lu' expects argument of type 'long unsigned int', but argument 5 has type '__u64' {aka 'long long unsigned int'}
The correct format depends on whether you use struct statx from the
glibc headers or the Linux UAPI headers. glibc uses uint64_t, Linux
uses __u64. uint64_t in glibc prefers unsigned long if the type is
64-bit, Linux uses unsigned long long unconditionally.
One solution is to use %ju and cast to (uintmax_t). Other cast-based
approaches are possible as well.
I'm not happy with the situation because those casts reduce type safety
and may suppress relevant compiler warnings.
Thanks,
Florian
next prev parent reply other threads:[~2021-11-19 13:11 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-11-19 12:38 asm-generic/int-ll64.h wrongly used on x86_64? Cyril Hrubis
2021-11-19 13:11 ` Florian Weimer [this message]
2021-11-19 13:53 ` Cyril Hrubis
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=877dd4cmsw.fsf@oldenburg.str.redhat.com \
--to=fweimer@redhat.com \
--cc=chrubis@suse.cz \
--cc=libc-alpha@sourceware.org \
--cc=linux-api@vger.kernel.org \
--cc=ltp@lists.linux.it \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).