mailing list of musl libc
 help / color / mirror / code / Atom feed
From: Rich Felker <dalias@libc.org>
To: musl@lists.openwall.com
Subject: Re: [PATCH 3/4] use exact types for the [U]INTXX_C macros
Date: Tue, 2 Dec 2014 13:03:55 -0500	[thread overview]
Message-ID: <20141202180355.GD29621@brightrain.aerifal.cx> (raw)
In-Reply-To: <1416926886.16006.925.camel@eris.loria.fr>

On Tue, Nov 25, 2014 at 03:50:06PM +0100, Jens Gustedt wrote:
> The C standard requires the exact types [u]int_leastXX_t for these
> macros in 7.20.4.1

You've misread the standard, and I did too originally. This was fixed
in commit a591e0383a0a31ac94541846796b93fedc63a0c4. The relevant text
is (C99 7.18.4 or C11 7.20.4, paragraph 3):

"Each invocation of one of these macros shall expand to an integer
constant expression suitable for use in #if preprocessing directives.
The type of the expression shall have the same type as would an
expression of the corresponding type converted according to the
integer promotions. The value of the expression shall be that of the
argument."

In the text you're looking at:

"The macro INTN_C(value) shall expand to an integer constant
expression corresponding to the type int_leastN_t. The macro
UINTN_C(value) shall expand to an integer constant expression
corresponding to the type uint_leastN_t. For example, if
uint_least64_t is a name for the type unsigned long long int, then
UINT64_C(0x123) might expand to the integer constant 0x123ULL."

the "correspondence" referred to by "corresponding" should be
interpreted as the one via integer promotions in the above text I
cited.

IMO this part of the standard is horribly worded, and I would love to
get it improved, because this topic comes up again and again.

Rich


  reply	other threads:[~2014-12-02 18:03 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-11-25 14:50 Jens Gustedt
2014-12-02 18:03 ` Rich Felker [this message]
2014-12-02 19:20   ` Jens Gustedt
2014-12-02 19:44     ` Rich Felker
2014-12-02 21:37       ` Jens Gustedt
2014-12-03  0:01         ` Rich Felker
2014-12-03 10:20           ` Jens Gustedt
2014-12-03 13:21             ` Szabolcs Nagy
2014-12-03 14:17               ` Jens Gustedt
2014-12-03 14:50                 ` Rich Felker
2014-12-03 14:47             ` Rich Felker

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=20141202180355.GD29621@brightrain.aerifal.cx \
    --to=dalias@libc.org \
    --cc=musl@lists.openwall.com \
    /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.
Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/musl/

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).