https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88662
--- Comment #18 from Joseph S. Myers <jsm28 at gcc dot gnu.org> --- What aspects of the psABI for bool do you say GCC does not respect? For memory representations, the ABI says "Booleans\index{boolean}, when stored in a memory object, are stored as single byte objects the value of which is always 0 (\code{false}) or 1 (\code{true}).". Does GCC store some other value, or does it fail to interpret byte values of 0 or 1 appropriately? For argument passing and return, the ABI says "When a value of a type of class INTEGER is returned or passed in a register or on the stack, the excess bits that would not be present in the memory representation of the type (see figure~\ref{basic-types}) are unspecified.\footnote{That is, the consumer side of those values needs to extend them or use short form instruction variants. As in the memory representation, for a value of type \code{_Bool}, the lowest 8 bits are significant, together forming the value 0 or 1.}". Does GCC pass or return some other value in the low 8 bits, or does GCC misinterpret register values for arguments or return values where the low 8 bits are 0 or 1 but the higher bits are unspecified?