diff --git a/gcc/testsuite/g++.dg/warn/Wlogical-op-1.C b/gcc/testsuite/g++.dg/warn/Wlogical-op-1.C index 186f7ab0e7c..f67ab89f867 100644 --- a/gcc/testsuite/g++.dg/warn/Wlogical-op-1.C +++ b/gcc/testsuite/g++.dg/warn/Wlogical-op-1.C @@ -1,7 +1,7 @@ // { dg-do compile} // { dg-options "-Wlogical-op" } -enum { a, b }; +enum { a, b1, b2 }; enum testenum { t1, t2}; @@ -28,65 +28,20 @@ extern testenum testa(); void foo() { - if ( f && b ) // { dg-warning "always evaluate as" } + if ( f && b2 ) // { dg-warning "always evaluate as" } do_something(1); - if ( c && b ) // { dg-warning "always evaluate as" } + if ( c && b2 ) // { dg-warning "always evaluate as" } do_something(2); - if ( b && c == a ) // { dg-bogus "always evaluate as" } + if ( b2 && c == a ) // { dg-bogus "always evaluate as" } do_something(101); if ( 1 && c ) do_something(102); // { dg-bogus "always evaluate as" } - if ( t2 && b ) // { dg-bogus "always evaluate as" } + if ( t2 && b2 ) // { dg-bogus "always evaluate as" } do_something(103); if ( true && c == a ) // { dg-bogus "always evaluate as" } do_something(104); - if ( b && true ) // { dg-bogus "always evaluate as" } + if ( b2 && true ) // { dg-bogus "always evaluate as" } do_something(105); } -// { dg-do compile} -// { dg-options "-Winvariant-expr" } -enum { a, b }; - -enum testenum { t1, t2}; - -extern int c; -extern bool bool_a, bool_b; - -template -class QFlags -{ -public: - typedef void **Zero; - int i; - inline QFlags(Enum f) : i(f) {} - - inline operator int() const - { return i;} - -}; - -QFlags f(t2); -extern void do_something(int); - -extern testenum testa(); - -void foo() -{ - if ( f && b ) // { dg-warning "always evaluate as" } - do_something(1); - if ( c && b ) // { dg-warning "always evaluate as" } - do_something(2); - - if ( b && c == a ) // { dg-bogus "always evaluate as" } - do_something(101); - if ( 1 && c ) - do_something(102); // { dg-bogus "always evaluate as" } - if ( t2 && b ) // { dg-bogus "always evaluate as" } - do_something(103); - if ( true && c == a ) // { dg-bogus "always evaluate as" } - do_something(104); - if ( b && true ) // { dg-bogus "always evaluate as" } - do_something(105); -} diff --git a/gcc/testsuite/gcc.dg/Wlogical-op-1.c b/gcc/testsuite/gcc.dg/Wlogical-op-1.c index 154e8f493f5..d9687bf09a2 100644 --- a/gcc/testsuite/gcc.dg/Wlogical-op-1.c +++ b/gcc/testsuite/gcc.dg/Wlogical-op-1.c @@ -33,62 +33,15 @@ void foo() if ( b && c == a ) /* { dg-bogus "always evaluate as" } */ (void)testa(); - if ( 1 && c ) /* { dg-warning "always evaluate as" } */ + if ( 1 && c ) /* { dg-bogus "always evaluate as" } */ (void)testa(); - if ( t2 && b ) /* { dg-warning "always evaluate as" } */ + if ( t2 && b ) /* { dg-bogus "always evaluate as" } */ (void)testa(); - if ( 0 && c == a ) /* { dg-warning "always evaluate as" } */ + if ( 0 && c == a ) /* { dg-bogus "always evaluate as" } */ (void)testa(); - if ( b && 1 ) /* { dg-warning "always evaluate as" } */ - (void)testa(); -} -/* - { dg-do compile} - { dg-options "-Winvariant-expr" } -*/ - -enum { a, ba, b }; - -enum testenum { t1, t2}; - -extern int c; -extern char bool_a, bool_b; - -extern int testa(); - -void foo() -{ - if ( testa() && b ) /* { dg-warning "always evaluate as" } */ - (void)testa(); - - if ( c && b ) /* { dg-warning "always evaluate as" } */ - (void)testa(); - - if ( c && 0x42 ) /* { dg-warning "always evaluate as" } */ - (void)testa(); - - if ( c && 0x42 ) /* { dg-warning "always evaluate as" } */ - (void) testa(); - - if ( c && 0x80 >>6) /* { dg-warning "always evaluate as" } */ - (void)testa(); - - - if ( b && c == a ) /* { dg-bogus "always evaluate as" } */ - (void)testa(); - - if ( 1 && c ) /* { dg-warning "always evaluate as" } */ - (void)testa(); - - if ( t2 && b ) /* { dg-warning "always evaluate as" } */ - (void)testa(); - - if ( 0 && c == a ) /* { dg-warning "always evaluate as" } */ - (void)testa(); - - if ( b && 1 ) /* { dg-warning "always evaluate as" } */ + if ( b && 1 ) /* { dg-bogus "always evaluate as" } */ (void)testa(); }