Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Tue, 2 Dec 2014 14:44:35 -0500
From: Rich Felker <dalias@...c.org>
To: musl@...ts.openwall.com
Subject: Re: [PATCH 3/4] use exact types for the [U]INTXX_C macros

On Tue, Dec 02, 2014 at 08:20:01PM +0100, Jens Gustedt wrote:
> Am Dienstag, den 02.12.2014, 13:03 -0500 schrieb Rich Felker:
> > 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.
> 
> No, that doesn't seem to be the view of the committee on that
> issue. There is a ongoing DR on that and the consensus of the
> committee in the discussion seems to be that this is the required
> type, e.g to be usable in _Generic.
> 
> The only ambiguity there seemed to be that they were convinced that
> this needs internal compiler magic to be achieved, which isn't the
> case.

Do you have a citation for this? What on earth is the point of the
text I quoted about promoted types if your interpretation of the text
that follows is correct?

Rich

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.