// Origin: PR c++/42766
// { dg-do compile }

template<class T> class smart_pointer {
public:
    operator T* () const { }
    operator bool () const { }
    operator bool () { }
};
class Context { };
typedef smart_pointer<Context> ContextP;
class SvnClient  {
    ~SvnClient();
    ContextP svnContext;
};
SvnClient::~SvnClient() {
    delete svnContext;
}