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:11:57 -0700
Organization: A noiseless patient Spider
Lines: 18
Message-ID: <86v9kdrdlu.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/lrivDt4K+NrjIxxs8H1egp2AcR6tekPE="
User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.4 (gnu/linux)
Cancel-Lock: sha1:pzMFnUuEL7c5kdhkXkC8W2UU7i8= sha1:d37nN8F+enNjspDqxxftfKXlxzA=
Xref: csiph.com comp.std.c:6128
Spiros Bousbouras writes:
> Assume an implementation with 2 extended integer types as follows :
>
> - INT1 is signed , has 23 value bits and no corresponding unsigned type.
> - UINT1 is unsigned , has 40 value bits and no corresponding signed type.
> - Both have rank greater than int .
> - The rank of UINT1 is smaller than the rank of INT1 .
Neither of these types is allowed. Except for _Bool, all integer
types have a corresponding type of opposite signedness.
> The last stipulation is perverse but I don't see anything in "6.3.1.1
> Boolean, characters, and integers" which forbids it.
In reading the C standard it's important to read widely. In
this case the provisions you're missing may be found in
section 6.2.5 paragraphs 4 through 9.