OSDN Git Service

Update gcc.dg/atomic-flag.c test for non-boolean TAS targets.
[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 "logical" } */
18          (void)testa();
19
20     if ( c && b )           /* { dg-warning "logical" } */
21         (void)testa();
22
23     if ( c && 0x42 )        /* { dg-warning "logical" } */
24         (void)testa();
25
26     if ( c && 0x80 >>6)     /* { dg-warning "logical" } */
27         (void)testa();
28
29
30     if ( b && c == a )      /* { dg-bogus "logical" } */
31           (void)testa();
32
33     if ( 1 && c )           /* { dg-bogus "logical" } */
34          (void)testa();
35
36     if ( t2 && b )          /* { dg-bogus "logical" } */
37           (void)testa();
38
39     if ( 0 && c == a )      /* { dg-bogus "logical" } */
40           (void)testa();
41
42     if ( b && 1 )           /* { dg-bogus "logical" } */
43           (void)testa();
44 }
45
46
47 void bar()
48 {
49     if ( testa() || b )     /* { dg-warning "logical" } */
50          (void)testa();
51
52     if ( c || b )           /* { dg-warning "logical" } */
53         (void)testa();
54
55     if ( c || 0x42 )        /* { dg-warning "logical" } */
56         (void) testa();
57
58     if ( c || 0x80 >>6)     /* { dg-warning "logical" } */
59         (void)testa();
60
61
62     if ( b || c == a )      /* { dg-bogus "logical" } */
63           (void)testa();
64
65     if ( 1 || c )           /* { dg-bogus "logical" } */
66          (void)testa();
67
68     if ( t2 || b )          /* { dg-bogus "logical" } */
69           (void)testa();
70
71     if ( 0 || c == a )      /* { dg-bogus "logical" } */
72           (void)testa();
73
74     if ( b || 1 )           /* { dg-bogus "logical" } */
75           (void)testa();
76 }
77