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;
|
|
}
|