Message ID | 76e02458-8c20-69a4-9f45-7a6444b6a56d@redhat.com |
---|---|
State | New |
Headers | show |
On powerpc-darwin _Bool is 4-byte not 1-byte, so saying values are represented as bytes isn't accurate for all systems supported by GCC.
On 09/19/2016 11:26 PM, Joseph Myers wrote: > On powerpc-darwin _Bool is 4-byte not 1-byte, so saying values are > represented as bytes isn't accurate for all systems supported by GCC. Interesting. Is the treatment of 0/1/the rest still the same there? Thanks, Florian
On Tue, 20 Sep 2016, Florian Weimer wrote: > On 09/19/2016 11:26 PM, Joseph Myers wrote: > > On powerpc-darwin _Bool is 4-byte not 1-byte, so saying values are > > represented as bytes isn't accurate for all systems supported by GCC. > > Interesting. > > Is the treatment of 0/1/the rest still the same there? Yes.
Index: gcc/doc/implement-c.texi =================================================================== --- gcc/doc/implement-c.texi (revision 240228) +++ gcc/doc/implement-c.texi (working copy) @@ -239,9 +239,13 @@ two's complement, or one's complement, and whether the extraordinary value is a trap representation or an ordinary value (C99 and C11 6.2.6.2).} -GCC supports only two's complement integer types, and all bit patterns -are ordinary values. +The standard integer types except @code{_Bool} are represented in two's +complement, and all bit patterns are ordinary values. +Ordinary values of @code{_Bool} are stored in memory as bytes with +values 0 or 1. Other byte values are trap representations of the +@code{_Bool} type. + @item @cite{The rank of any extended integer type relative to another extended integer type with the same precision (C99 and C11 6.3.1.1).}