www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - assert(0x814a & 0x8000 == 0x8000 ); Assertion failure

reply test <test test.test> writes:
void main(){
	assert(0x814a & 0x8000  == 0x8000 );
}
May 30 2009
parent Frits van Bommel <fvbommel REMwOVExCAPSs.nl> writes:
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 ); }
May 30 2009