1 // PR c++/69850
2 // { dg-do compile }
3 // { dg-options "-Wnonnull-compare" }
4 
5 struct D {
6   virtual ~D ();
fooD7   void foo () const { delete this; }	// { dg-bogus "nonnull argument" }
8   template <typename> friend struct A;
9 };
10 template <typename T> struct A {
barA11   static void bar (T *x) { x->foo (); }
12 };
13 template <typename T> struct B {
14   T b;
bazB15   void baz () { A<T>::bar (&b); }
16 };
17 class C {
18   class E : public D { ~E (); };
19   void baz ();
20   B<E> c;
21 };
22 
23 void
baz()24 C::baz ()
25 {
26   c.baz ();
27 }
28