annotate gcc/testsuite/g++.dg/warn/Wnull-conversion-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 compile }
kono
parents:
diff changeset
2 // { dg-options "-Wconversion-null" }
kono
parents:
diff changeset
3
kono
parents:
diff changeset
4 #include <stddef.h>
kono
parents:
diff changeset
5
kono
parents:
diff changeset
6 class Foo {
kono
parents:
diff changeset
7 public:
kono
parents:
diff changeset
8 template <typename T1, typename T2>
kono
parents:
diff changeset
9 static void Compare(const T1& expected, const T2& actual) { }
kono
parents:
diff changeset
10
kono
parents:
diff changeset
11 template <typename T1, typename T2>
kono
parents:
diff changeset
12 static void Compare(const T1& expected, T2* actual) { }
kono
parents:
diff changeset
13
kono
parents:
diff changeset
14 };
kono
parents:
diff changeset
15
kono
parents:
diff changeset
16 template<typename T1>
kono
parents:
diff changeset
17 class Foo2 {
kono
parents:
diff changeset
18 public:
kono
parents:
diff changeset
19 Foo2(int x);
kono
parents:
diff changeset
20 template<typename T2> void Bar(T2 y);
kono
parents:
diff changeset
21 };
kono
parents:
diff changeset
22
kono
parents:
diff changeset
23 template<typename T3> void func(T3 x) { }
kono
parents:
diff changeset
24
kono
parents:
diff changeset
25 typedef Foo2<int> MyFooType;
kono
parents:
diff changeset
26
kono
parents:
diff changeset
27 void func1(long int a) {
kono
parents:
diff changeset
28 MyFooType *foo2 = new MyFooType(NULL); // { dg-warning "passing NULL to" }
kono
parents:
diff changeset
29 foo2->Bar(a);
kono
parents:
diff changeset
30 func(NULL);
kono
parents:
diff changeset
31 func<int>(NULL); // { dg-warning "passing NULL to" }
kono
parents:
diff changeset
32 func<int *>(NULL);
kono
parents:
diff changeset
33 }
kono
parents:
diff changeset
34
kono
parents:
diff changeset
35 int x = 1;
kono
parents:
diff changeset
36
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
37 int
111
kono
parents:
diff changeset
38 main()
kono
parents:
diff changeset
39 {
kono
parents:
diff changeset
40 int *p = &x;
kono
parents:
diff changeset
41
kono
parents:
diff changeset
42 Foo::Compare(0, *p);
kono
parents:
diff changeset
43 Foo::Compare<long int, int>(NULL, p); // { dg-warning "passing NULL to" }
kono
parents:
diff changeset
44 Foo::Compare(NULL, p);
kono
parents:
diff changeset
45 func1(NULL); // { dg-warning "passing NULL to" }
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
46
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
47 return 0;
111
kono
parents:
diff changeset
48 }