Gustavo Sverzut Barbieri wrote:
> to make clear: it COULD be -0, on intel at least it's -1 and thus
> evaluates to TRUE, that's why it was unnoticed.
> 
> On Tue, May 20, 2008 at 5:56 PM, Enlightenment CVS
> <[EMAIL PROTECTED]> wrote:
>> Enlightenment CVS committal
>>
>> Author  : barbieri
>> Project : e17
>> Module  : libs/evas
>>
>> Dir     : e17/libs/evas/src/lib/include
>>
>>
>> Modified Files:
>>        evas_common.h
>>
>>
>> Log Message:
>> Remove bugs with bitfield usage, make boolean usage clear.
>>
>> This patch fixes the problem with bitfield of signed types (ie: char),
>> where the bit would be used for the signal, so 1 is considered -0 and
>> thus 0.
>>
>> Move all the single bit fields to Evas_Bool, making it clear and also
>> avoiding these problems since Evas_Bool is unsigned char.
>>
Compilers may complain about signed one bit bitfields, but it is 
severely broken if a signed one bit bitfield set to 1 evaluates to 0.

I would have thought that a signed one bit bitfield set to 1 normally 
evaluates to -1 which is != TRUE, assuming TRUE is 1.

Furthermore, you should not assume anything about the signedness of 
char. It depends on compiler configuration.

/Kim

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft 
Defy all challenges. Microsoft(R) Visual Studio 2008. 
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to