assert(0x814a & 0x8000 == 0x8000 ); Assertion failure

Frits van Bommel fvbommel at REMwOVExCAPSs.nl
Sat May 30 08:22:06 PDT 2009


test wrote:
> void main(){
> 	assert(0x814a & 0x8000  == 0x8000 );
> }

That's because it's equivalent to
     void main(){
         assert(0x814a & (0x8000  == 0x8000) );
     }
the right side of the & is 'bool true', which is converted to 'int 1', which has 
none of the bits in 0x814a set...

You probably meant to do this:
     void main(){
         assert((0x814a & 0x8000)  == 0x8000 );
     }


More information about the Digitalmars-d-bugs mailing list