On Fri, Oct 12, 2018 at 1:51 AM Sven Barth via fpc-devel <
fpc-devel@lists.freepascal.org> wrote:

> Dmitry Boyarintsev <skalogryz.li...@gmail.com> schrieb am Fr., 12. Okt.
> 2018, 02:07:
>
>> On Thu, Oct 11, 2018 at 4:16 PM Jonas Maebe <jo...@freepascal.org> wrote:
>>
>>> However, the Objective-C BOOL type does not map to _Bool on x86-64, but
>>> to signed char. And values of that type indeed do need to (sign)
>>> extended.
>>>
>>
>> Should use of ByteBool resolve the problems for ObjC mapped headers for
>> the current version of the compiler?
>> is "ByteBool" an alias for Boolean, or is it forcefully "char" sized for
>> x86_64 ABI?
>>
>
> Even Boolean has the correct size of 1 Byte. The difference is the value
> of True: For Boolean its always 1, for ByteBool it's "not 0".
>

But it feels like "signed chars" are treated differently, where the value
would extended to the remaining bits of the register.
That's why I was wondering if "ByteBool" would be passed differently than
"Boolean" on 64-bit.

Here's a similar discussion
https://stackoverflow.com/questions/31267325/bool-with-64-bit-on-ios

It actually states that true _Bool is only used for 64-bit ARM and no other
targets.

So, I'm wondering if it's actually a compiler issue or headers issue.
and can ByteBool be used as a substitute for signed char.

thanks,
Dmitry
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel

Reply via email to