blob: 641bb6738df19ba3e724e0cb70736606788e870d [file] [log] [blame]
// PR c++/69850
// { dg-do compile }
// { dg-options "-Wnonnull-compare" }
struct D {
virtual ~D ();
void foo () const { delete this; } // { dg-bogus "nonnull argument" }
template <typename> friend struct A;
};
template <typename T> struct A {
static void bar (T *x) { x->foo (); }
};
template <typename T> struct B {
T b;
void baz () { A<T>::bar (&b); }
};
class C {
class E : public D { ~E (); };
void baz ();
B<E> c;
};
void
C::baz ()
{
c.baz ();
}