annotate gcc/testsuite/g++.dg/warn/Walways-true-2.C @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children 1830386684a0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 // Make sure we don't assume that a weak symbol is always non-NULL.
kono
parents:
diff changeset
2 // This is just like Walways-true-1.C, except that it uses a weak
kono
parents:
diff changeset
3 // symbol.
kono
parents:
diff changeset
4 // Origin: Ian Lance Taylor <iant@google.com>
kono
parents:
diff changeset
5
kono
parents:
diff changeset
6 // { dg-do compile }
kono
parents:
diff changeset
7 // { dg-options "-Waddress" }
kono
parents:
diff changeset
8 // { dg-require-weak "" }
kono
parents:
diff changeset
9
kono
parents:
diff changeset
10 extern int foo (int) __attribute__ ((weak));
kono
parents:
diff changeset
11
kono
parents:
diff changeset
12 int i __attribute__ ((weak));
kono
parents:
diff changeset
13
kono
parents:
diff changeset
14 void
kono
parents:
diff changeset
15 bar (int a)
kono
parents:
diff changeset
16 {
kono
parents:
diff changeset
17 lab:
kono
parents:
diff changeset
18 if (foo)
kono
parents:
diff changeset
19 foo (0);
kono
parents:
diff changeset
20 if (foo (1))
kono
parents:
diff changeset
21 ;
kono
parents:
diff changeset
22 if (&i)
kono
parents:
diff changeset
23 foo (2);
kono
parents:
diff changeset
24 if (i)
kono
parents:
diff changeset
25 foo (3);
kono
parents:
diff changeset
26 if (&a) // { dg-warning "always evaluate as|never be NULL" "correct warning" }
kono
parents:
diff changeset
27 foo (4);
kono
parents:
diff changeset
28 if (a)
kono
parents:
diff changeset
29 foo (5);
kono
parents:
diff changeset
30 if (&&lab) // { dg-warning "always evaluate as|never be NULL" "correct warning" }
kono
parents:
diff changeset
31 foo (6);
kono
parents:
diff changeset
32 if (foo == 0)
kono
parents:
diff changeset
33 foo (7);
kono
parents:
diff changeset
34 if (foo (1) == 0)
kono
parents:
diff changeset
35 foo (8);
kono
parents:
diff changeset
36 if (&i == 0)
kono
parents:
diff changeset
37 foo (9);
kono
parents:
diff changeset
38 if (i == 0)
kono
parents:
diff changeset
39 foo (10);
kono
parents:
diff changeset
40 if (&a == 0) // { dg-warning "never be NULL" "correct warning" }
kono
parents:
diff changeset
41 foo (11);
kono
parents:
diff changeset
42 if (a == 0)
kono
parents:
diff changeset
43 foo (12);
kono
parents:
diff changeset
44 if (&&lab == 0) // { dg-warning "never be NULL" "correct warning" }
kono
parents:
diff changeset
45 foo (13);
kono
parents:
diff changeset
46 if (0 == foo)
kono
parents:
diff changeset
47 foo (14);
kono
parents:
diff changeset
48 if (0 == foo (1))
kono
parents:
diff changeset
49 foo (15);
kono
parents:
diff changeset
50 if (0 == &i)
kono
parents:
diff changeset
51 foo (16);
kono
parents:
diff changeset
52 if (0 == i)
kono
parents:
diff changeset
53 foo (17);
kono
parents:
diff changeset
54 if (0 == &a) // { dg-warning "never be NULL" "correct warning" }
kono
parents:
diff changeset
55 foo (18);
kono
parents:
diff changeset
56 if (0 == a)
kono
parents:
diff changeset
57 foo (19);
kono
parents:
diff changeset
58 if (0 == &&lab) // { dg-warning "never be NULL" "correct warning" }
kono
parents:
diff changeset
59 foo (20);
kono
parents:
diff changeset
60 }