wlogical-op-1.c

来自「用于进行gcc测试」· C语言 代码 · 共 48 行

C
48
字号
// { dg-do compile}// { dg-options "-Wlogical-op" }enum { a, b1, b2 };enum testenum { t1, t2};extern int c;extern bool bool_a, bool_b;template<typename Enum>class QFlags{public:    typedef void **Zero;    int i;    inline QFlags(Enum f) : i(f) {}    inline operator int() const    { return i;}};QFlags<testenum> f(t2);extern void do_something(int);extern testenum testa();void foo(){    if ( f && b2 )            // { dg-warning "always evaluate as" }          do_something(1);    if ( c && b2 )            // { dg-warning "always evaluate as" }          do_something(2);    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 && b2 )           // { dg-bogus "always evaluate as" }          do_something(103);    if ( true && c == a )     // { dg-bogus "always evaluate as" }          do_something(104);    if ( b2 && true )         // { dg-bogus "always evaluate as" }          do_something(105);}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?