OSDN Git Service

gcc/:
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / g++.dg / warn / Walways-true-1.C
1 // Test -Waddress for testing an address against NULL.
2 // Origin: Ian Lance Taylor <iant@google.com>
3
4 // { dg-do compile }
5 // { dg-options "-Waddress" }
6
7 extern int foo (int);
8
9 int i;
10
11 void
12 bar (int a)
13 {
14  lab:
15   if (foo)      // { dg-warning "always evaluate as" "correct warning" }
16     foo (0);
17   if (foo (1))
18     ;
19   if (&i)       // { dg-warning "always evaluate as" "correct warning" }
20     foo (2);
21   if (i)
22     foo (3);
23   if (&a)       // { dg-warning "always evaluate as" "correct warning" }
24     foo (4);
25   if (a)
26     foo (5);
27   if (&&lab)    // { dg-warning "always evaluate as" "correct warning" }
28     foo (6);
29   if (foo == 0) // { dg-warning "never be NULL" "correct warning" }
30     foo (7);
31   if (foo (1) == 0)
32     foo (8);
33   if (&i == 0)  // { dg-warning "never be NULL" "correct warning" }
34     foo (9);
35   if (i == 0)
36     foo (10);
37   if (&a == 0)  // { dg-warning "never be NULL" "correct warning" }
38     foo (11);
39   if (a == 0)
40     foo (12);
41   if (&&lab == 0) // { dg-warning "never be NULL" "correct warning" }
42     foo (13);
43   if (0 == foo) // { dg-warning "never be NULL" "correct warning" }
44     foo (14);
45   if (0 == foo (1))
46     foo (15);
47   if (0 == &i)  // { dg-warning "never be NULL" "correct warning" }
48     foo (16);
49   if (0 == i)
50     foo (17);
51   if (0 == &a)  // { dg-warning "never be NULL" "correct warning" }
52     foo (18);
53   if (0 == a)
54     foo (19);
55   if (0 == &&lab) // { dg-warning "never be NULL" "correct warning" }
56     foo (20);
57 }