annotate gcc/testsuite/g++.dg/warn/Wnonnull-compare-3.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 // PR c++/69850
kono
parents:
diff changeset
2 // { dg-do compile }
kono
parents:
diff changeset
3 // { dg-options "-Wnonnull-compare" }
kono
parents:
diff changeset
4
kono
parents:
diff changeset
5 template <typename T>
kono
parents:
diff changeset
6 struct A {
kono
parents:
diff changeset
7 static void foo (T *x) { x->bar (); }
kono
parents:
diff changeset
8 };
kono
parents:
diff changeset
9 template <typename T>
kono
parents:
diff changeset
10 struct B {
kono
parents:
diff changeset
11 T b;
kono
parents:
diff changeset
12 void operator= (B) { A<T>::foo (&b); }
kono
parents:
diff changeset
13 };
kono
parents:
diff changeset
14 struct C {
kono
parents:
diff changeset
15 void bar () { delete[] this; } // { dg-bogus "nonnull argument" }
kono
parents:
diff changeset
16 };
kono
parents:
diff changeset
17 struct D { B<C> d; };
kono
parents:
diff changeset
18 struct G {
kono
parents:
diff changeset
19 D g[6];
kono
parents:
diff changeset
20 void baz ();
kono
parents:
diff changeset
21 };
kono
parents:
diff changeset
22 int a;
kono
parents:
diff changeset
23
kono
parents:
diff changeset
24 void
kono
parents:
diff changeset
25 G::baz ()
kono
parents:
diff changeset
26 {
kono
parents:
diff changeset
27 g[a] = g[1];
kono
parents:
diff changeset
28 }