Path: csiph.com!eternal-september.org!feeder.eternal-september.org!reader01.eternal-september.org!.POSTED!not-for-mail From: Tim Rentsch Newsgroups: comp.std.c Subject: Re: Problem with ranks Date: Sat, 30 May 2020 02:18:37 -0700 Organization: A noiseless patient Spider Lines: 27 Message-ID: <86r1v1rdaq.fsf@linuxsc.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Injection-Info: reader02.eternal-september.org; posting-host="50ca98e22833fa004f70febc55f67ad1"; logging-data="3038"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/b38fbLZ8U5pIDIbVLuLWotwrxZJqNMQ8=" User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.4 (gnu/linux) Cancel-Lock: sha1:WCnV0RKMol49EPtsO/hy+4QAJVk= sha1:+Oew9XUJPCmdqrfnACdFOpiL2To= Xref: csiph.com comp.std.c:6129 James Kuyper writes: > On 5/29/20 9:55 PM, Spiros Bousbouras wrote: > >> Assume an implementation with 2 extended integer types as follows : > > I suspect that you don't mean the following type names to be interpreted > literally, but it would have been better for you to choose identifiers > for those types which are reserved to the implementation, such as > __int24_t and __uint40_t. > >> - INT1 is signed , has 23 value bits and no corresponding unsigned type. > > "The standard and extended signed integer types are collectively called > signed integer types." (6.2.5p4). > "For each of the signed integer types, there is a corresponding (but > different) unsigned integer type ..." (6.2.5p6). > >> - UINT1 is unsigned , has 40 value bits and no corresponding signed type. > > That, however, is permitted, since 6.2.5p6 is asymmetrical. No, it isn't. Read 6.2.5 p6 more carefully. Not counting _Bool, the only types that are unsigned integer types each corresponds to a signed integer type. If a type doesn't have a corresponding signed integer type, it isn't an unsigned integer type (unless of course it is _Bool).