OSDN Git Service

PR testsuite/33082
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.dg / Wlogical-op-1.c
1 /*
2    { dg-do compile}
3    { dg-options "-Wlogical-op" }
4 */
5
6 enum { a, ba, b };
7
8 enum testenum { t1, t2};
9
10 extern int c;
11 extern char bool_a, bool_b;
12
13 extern int testa();
14
15 void foo()
16 {
17     if ( testa() && b )     /* { dg-warning "always evaluate as" } */
18          (void)testa();
19
20     if ( c && b )           /* { dg-warning "always evaluate as" } */
21         (void)testa();
22
23     if ( c && 0x42 )        /* { dg-warning "always evaluate as" } */
24         (void)testa();
25
26     if ( c && 0x42 )        /* { dg-warning "always evaluate as" } */
27         (void) testa();
28
29     if ( c && 0x80 >>6)     /* { dg-warning "always evaluate as" } */
30         (void)testa();
31
32
33     if ( b && c == a )      /* { dg-bogus "always evaluate as" } */
34           (void)testa();
35
36     if ( 1 && c )           /* { dg-bogus "always evaluate as" } */
37          (void)testa();
38
39     if ( t2 && b )          /* { dg-bogus "always evaluate as" } */
40           (void)testa();
41
42     if ( 0 && c == a )      /* { dg-bogus "always evaluate as" } */
43           (void)testa();
44
45     if ( b && 1 )           /* { dg-bogus "always evaluate as" } */
46           (void)testa();
47 }