1//980324 bkoz 2//test for bool and bitwise ands 3 4#include <assert.h> 5 6 7void bar ( bool x ) {}; 8void bars ( short x ) {}; 9 10#if 0 11int andb(){ 12 bool y; 13 bar ( y ); 14 int blob = ( 27 & int (y) ); 15 return blob; //expect 1 or 0 16} 17#endif 18 19int andbtrue(){ 20 bool y = true; 21 bar ( y ); 22 int blob = ( 27 & int (y) ); 23 return blob; //expect 1 24} 25 26int andbfalse(){ 27 bool y = false; 28 bar ( y ); 29 int blob = ( 27 & int (y) ); 30 return blob; //expect 0 31} 32 33int andbfalse2(){ 34 bool y = 0; 35 bar ( y ); 36 int blob = ( 27 & int (y) ); 37 return blob; //expect 0 38} 39 40int ands(){ 41 short y = 1; 42 bars ( y ); 43 int blob = ( 27 & int (y) ); 44 return blob; //expect 1 45} 46 47 48int main() { 49 int tmp; 50#if 0 51 tmp = andb(); 52 assert (tmp == 1 || tmp == 0); 53#endif 54 tmp = andbtrue(); 55 assert (tmp == 1); 56 tmp = andbfalse(); 57 assert (tmp == 0); 58 tmp = andbfalse2(); 59 assert (tmp == 0); 60 tmp = ands(); 61 assert (tmp == 1); 62 return 0; 63} 64