LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
From: Segher Boessenkool <segher@kernel.crashing.org>
To: "H. Peter Anvin" <hpa@zytor.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
Linus Torvalds <torvalds@linux-foundation.org>,
Linux Arch Mailing List <linux-arch@vger.kernel.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
David Brownell <dbrownell@users.sourceforge.net>
Subject: Re: [PATCH 1/2] Add C99-style constructor macros for specific-sized integers
Date: Mon, 3 Mar 2008 04:20:37 +0100 [thread overview]
Message-ID: <7e0381d9932a37ad78f0c38b2a3c6a03@kernel.crashing.org> (raw)
In-Reply-To: <4a8566f54ff84f498c5c0c0340076c296b1840e6@tazenda.hos.anvin.org>
> Although it is fully legal and correct C to write something like:
>
> (u64)0x123456789abcdef
>
> .. gcc will issue a warning on 32-bit systems that 0x123456789abcdef
> is too big for an "int", and that it has been transparently promoted,
> even though it is obvious that that is what the user intended in the
> first place.
[It says it is too big for 'long', actually].
That's because this is not valid ISO C90. GCC tries to help you out
by using the C99 rules (it has to do something, and terminating with
an error would be a bit rude). Perhaps the kernel should use C99
mode (-std=gnu99, to get the GNU C extensions).
> +#define S8_C(x) x
> +#define U8_C(x) x ## U
> +#define S16_C(x) x
> +#define U16_C(x) x ## U
> +#define S32_C(x) x
> +#define U32_C(x) x ## U
These are unnecessary, Linux requires an int to be at least 32 bits.
> +#define S64_C(x) x ## LL
> +#define U64_C(x) x ## ULL
Here you can use LL resp. ULL on all archs.
Do these new macros really buy anything over just writing LL in the
few places that 64-bit constants are used?
Segher
next prev parent reply other threads:[~2008-03-03 3:21 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-03-03 0:09 H. Peter Anvin
2008-03-03 0:09 ` [PATCH 2/2] Use U64_C() instead of casts in kernel/time.c H. Peter Anvin
2008-03-03 2:38 ` [PATCH 1/2] Add C99-style constructor macros for specific-sized integers Matthew Wilcox
2008-03-03 4:43 ` H. Peter Anvin
2008-03-03 6:20 ` Al Viro
2008-03-03 6:12 ` H. Peter Anvin
2008-03-03 6:32 ` Al Viro
2008-03-03 6:28 ` H. Peter Anvin
2008-03-03 3:20 ` Segher Boessenkool [this message]
2008-03-03 4:14 ` David Brownell
2008-03-03 4:50 ` H. Peter Anvin
2008-03-03 4:45 ` H. Peter Anvin
2008-03-03 20:23 ` Segher Boessenkool
2008-03-03 10:57 ` David Howells
2008-03-03 11:43 ` Russell King
2008-03-03 12:40 ` Sam Ravnborg
2008-03-03 17:03 ` H. Peter Anvin
2008-03-03 12:15 ` David Howells
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=7e0381d9932a37ad78f0c38b2a3c6a03@kernel.crashing.org \
--to=segher@kernel.crashing.org \
--cc=akpm@linux-foundation.org \
--cc=dbrownell@users.sourceforge.net \
--cc=hpa@zytor.com \
--cc=linux-arch@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=torvalds@linux-foundation.org \
--subject='Re: [PATCH 1/2] Add C99-style constructor macros for specific-sized integers' \
/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
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).