// { dg-do run } //980323 bkoz //test for bools with inclusive ors #include #include void bar ( bool x ) {} void bars ( short x ) {} /* 980326 bkoz this is not initialized and so can have indeterminate value. */ #if 0 int orb(){ bool y; bar ( y ); int blob = ( 27 | int (y) ); return blob; //expect 27 or 0 } #endif int orbtrue(){ bool y = true; bar ( y ); int blob = ( 27 | int (y) ); return blob; //expect 27 } int orbfalse(){ bool y = false; bar ( y ); int blob = ( 27 | int (y) ); return blob; //expect 27 } int orbfalse2(){ bool y = 0; bar ( y ); int blob = ( 27 | int (y) ); return blob; //expect 27 } int ors(){ short y = 1; bars ( y ); int blob = ( 27 | int (y) ); return blob; //expect 27 } #if INT_MAX > 32767 int orus(){ unsigned short y = 1; bars ( y ); int blob = ( 65539 | int (y) ); return blob; //expect 65539, will be 3 if done in us type } #endif int main() { int tmp; #if 0 tmp = orb(); assert (tmp == 27 || tmp == 0); #endif tmp = orbtrue(); assert (tmp ==27); tmp = orbfalse(); assert (tmp ==27); tmp = orbfalse2(); assert (tmp ==27); tmp = ors(); assert (tmp ==27); #if INT_MAX > 32767 tmp = orus(); assert (tmp == 65539); #endif return 0; }