annotate gcc/testsuite/g++.dg/warn/Wnonnull-compare-2.C @ 158:494b0b89df80 default tip

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 25 May 2020 18:13:55 +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 struct D {
kono
parents:
diff changeset
6 virtual ~D ();
kono
parents:
diff changeset
7 void foo () const { delete this; } // { dg-bogus "nonnull argument" }
kono
parents:
diff changeset
8 template <typename> friend struct A;
kono
parents:
diff changeset
9 };
kono
parents:
diff changeset
10 template <typename T> struct A {
kono
parents:
diff changeset
11 static void bar (T *x) { x->foo (); }
kono
parents:
diff changeset
12 };
kono
parents:
diff changeset
13 template <typename T> struct B {
kono
parents:
diff changeset
14 T b;
kono
parents:
diff changeset
15 void baz () { A<T>::bar (&b); }
kono
parents:
diff changeset
16 };
kono
parents:
diff changeset
17 class C {
kono
parents:
diff changeset
18 class E : public D { ~E (); };
kono
parents:
diff changeset
19 void baz ();
kono
parents:
diff changeset
20 B<E> c;
kono
parents:
diff changeset
21 };
kono
parents:
diff changeset
22
kono
parents:
diff changeset
23 void
kono
parents:
diff changeset
24 C::baz ()
kono
parents:
diff changeset
25 {
kono
parents:
diff changeset
26 c.baz ();
kono
parents:
diff changeset
27 }