65 lines
938 B
C++
65 lines
938 B
C++
|
// { dg-do run }
|
||
|
//980324 bkoz
|
||
|
//test for bool and bitwise ands
|
||
|
|
||
|
#include <assert.h>
|
||
|
|
||
|
|
||
|
void bar ( bool x ) {}
|
||
|
void bars ( short x ) {}
|
||
|
|
||
|
#if 0
|
||
|
int andb(){
|
||
|
bool y;
|
||
|
bar ( y );
|
||
|
int blob = ( 27 & int (y) );
|
||
|
return blob; //expect 1 or 0
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
int andbtrue(){
|
||
|
bool y = true;
|
||
|
bar ( y );
|
||
|
int blob = ( 27 & int (y) );
|
||
|
return blob; //expect 1
|
||
|
}
|
||
|
|
||
|
int andbfalse(){
|
||
|
bool y = false;
|
||
|
bar ( y );
|
||
|
int blob = ( 27 & int (y) );
|
||
|
return blob; //expect 0
|
||
|
}
|
||
|
|
||
|
int andbfalse2(){
|
||
|
bool y = 0;
|
||
|
bar ( y );
|
||
|
int blob = ( 27 & int (y) );
|
||
|
return blob; //expect 0
|
||
|
}
|
||
|
|
||
|
int ands(){
|
||
|
short y = 1;
|
||
|
bars ( y );
|
||
|
int blob = ( 27 & int (y) );
|
||
|
return blob; //expect 1
|
||
|
}
|
||
|
|
||
|
|
||
|
int main() {
|
||
|
int tmp;
|
||
|
#if 0
|
||
|
tmp = andb();
|
||
|
assert (tmp == 1 || tmp == 0);
|
||
|
#endif
|
||
|
tmp = andbtrue();
|
||
|
assert (tmp == 1);
|
||
|
tmp = andbfalse();
|
||
|
assert (tmp == 0);
|
||
|
tmp = andbfalse2();
|
||
|
assert (tmp == 0);
|
||
|
tmp = ands();
|
||
|
assert (tmp == 1);
|
||
|
return 0;
|
||
|
}
|