2 // { dg-options "-Wlogical-op" }
6 enum testenum { t1, t2};
9 extern bool bool_a, bool_b;
11 template<typename Enum>
17 inline QFlags(Enum f) : i(f) {}
19 inline operator int() const
24 QFlags<testenum> f(t2);
25 extern void do_something(int);
27 extern testenum testa();
31 if ( f && b2 ) // { dg-warning "logical" }
33 if ( c && b2 ) // { dg-warning "logical" }
36 if ( b2 && c == a ) // { dg-bogus "logical" }
39 do_something(102); // { dg-bogus "logical" }
40 if ( t2 && b2 ) // { dg-bogus "logical" }
42 if ( true && c == a ) // { dg-bogus "logical" }
44 if ( b2 && true ) // { dg-bogus "logical" }
51 if ( f || b2 ) // { dg-warning "logical" }
53 if ( c || b2 ) // { dg-warning "logical" }
56 if ( b2 || c == a ) // { dg-bogus "logical" }
59 do_something(102); // { dg-bogus "logical" }
60 if ( t2 || b2 ) // { dg-bogus "logical" }
62 if ( true || c == a ) // { dg-bogus "logical" }
64 if ( b2 || true ) // { dg-bogus "logical" }