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

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 // { dg-do link }
kono
parents:
diff changeset
2 // { dg-options "" }
kono
parents:
diff changeset
3
kono
parents:
diff changeset
4 #include <cstddef>
kono
parents:
diff changeset
5
kono
parents:
diff changeset
6 void g(int) {}
kono
parents:
diff changeset
7 void g(long) {}
kono
parents:
diff changeset
8 void g(long long) {}
kono
parents:
diff changeset
9 extern void g(void*);
kono
parents:
diff changeset
10
kono
parents:
diff changeset
11 template <int I>
kono
parents:
diff changeset
12 void h() {}
kono
parents:
diff changeset
13
kono
parents:
diff changeset
14 void k(int) {}
kono
parents:
diff changeset
15
kono
parents:
diff changeset
16 template <class T>
kono
parents:
diff changeset
17 void l(T);
kono
parents:
diff changeset
18
kono
parents:
diff changeset
19 template <>
kono
parents:
diff changeset
20 void l(int) {}
kono
parents:
diff changeset
21
kono
parents:
diff changeset
22 template <>
kono
parents:
diff changeset
23 void l(long) {}
kono
parents:
diff changeset
24
kono
parents:
diff changeset
25 template <>
kono
parents:
diff changeset
26 void l(long long) {}
kono
parents:
diff changeset
27
kono
parents:
diff changeset
28 void warn_for_NULL()
kono
parents:
diff changeset
29 {
kono
parents:
diff changeset
30 int i = NULL; // { dg-warning "" } converting NULL to non-pointer type
kono
parents:
diff changeset
31 float z = NULL; // { dg-warning "" } converting NULL to non-pointer type
kono
parents:
diff changeset
32 int a[2];
kono
parents:
diff changeset
33
kono
parents:
diff changeset
34 i != NULL; // { dg-warning "" } NULL used in arithmetic
kono
parents:
diff changeset
35 NULL != z; // { dg-warning "" } NULL used in arithmetic
kono
parents:
diff changeset
36 k != NULL; // No warning: decay conversion
kono
parents:
diff changeset
37 NULL != a; // Likewise.
kono
parents:
diff changeset
38 -NULL; // { dg-warning "" } converting NULL to non-pointer type
kono
parents:
diff changeset
39 +NULL; // { dg-warning "" } converting NULL to non-pointer type
kono
parents:
diff changeset
40 ~NULL; // { dg-warning "" } converting NULL to non-pointer type
kono
parents:
diff changeset
41 a[NULL] = 3; // { dg-warning "" } converting NULL to non-pointer-type
kono
parents:
diff changeset
42 i = NULL; // { dg-warning "" } converting NULL to non-pointer type
kono
parents:
diff changeset
43 z = NULL; // { dg-warning "" } converting NULL to non-pointer type
kono
parents:
diff changeset
44 k(NULL); // { dg-warning "" } converting NULL to int
kono
parents:
diff changeset
45 g(NULL); // { dg-warning "" } converting NULL to int
kono
parents:
diff changeset
46 h<NULL>(); // No warning: NULL bound to integer template parameter
kono
parents:
diff changeset
47 l(NULL); // No warning: NULL is used to implicitly instantiate the template
kono
parents:
diff changeset
48 NULL && NULL; // No warning: converting NULL to bool is OK
kono
parents:
diff changeset
49 }
kono
parents:
diff changeset
50
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
51 void warn_for___null()
111
kono
parents:
diff changeset
52 {
kono
parents:
diff changeset
53 int i = __null; // { dg-warning "" } converting __null to non-pointer type
kono
parents:
diff changeset
54 float z = __null; // { dg-warning "" } converting __null to non-pointer type
kono
parents:
diff changeset
55 int a[2];
kono
parents:
diff changeset
56
kono
parents:
diff changeset
57 i != __null; // { dg-warning "" } __null used in arithmetic
kono
parents:
diff changeset
58 __null != z; // { dg-warning "" } __null used in arithmetic
kono
parents:
diff changeset
59 k != __null; // No warning: decay conversion
kono
parents:
diff changeset
60 __null != a; // Likewise.
kono
parents:
diff changeset
61 -__null; // { dg-warning "" } converting __null to non-pointer type
kono
parents:
diff changeset
62 +__null; // { dg-warning "" } converting __null to non-pointer type
kono
parents:
diff changeset
63 ~__null; // { dg-warning "" } converting __null to non-pointer type
kono
parents:
diff changeset
64 a[__null] = 3; // { dg-warning "" } converting __null to non-pointer-type
kono
parents:
diff changeset
65 i = __null; // { dg-warning "" } converting __null to non-pointer type
kono
parents:
diff changeset
66 z = __null; // { dg-warning "" } converting __null to non-pointer type
kono
parents:
diff changeset
67 k(__null); // { dg-warning "" } converting __null to int
kono
parents:
diff changeset
68 g(__null); // { dg-warning "" } converting __null to int
kono
parents:
diff changeset
69 h<__null>(); // No warning: __null bound to integer template parameter
kono
parents:
diff changeset
70 l(__null); // No warning: __null is used to implicitly instantiate the template
kono
parents:
diff changeset
71 __null && __null; // No warning: converting NULL to bool is OK
kono
parents:
diff changeset
72 }
kono
parents:
diff changeset
73
kono
parents:
diff changeset
74 int main()
kono
parents:
diff changeset
75 {
kono
parents:
diff changeset
76 warn_for_NULL();
kono
parents:
diff changeset
77 warn_for___null();
kono
parents:
diff changeset
78 }