// PR c++/58923
struct A
{
virtual void do_it() const = 0;
};
struct B : A
{
virtual void do_it() const {}
};
struct C
{
operator B() const { return B(); }
};
void do_it(const A& a) { a.do_it(); }
int main()
{
C c;
do_it(c);
return 0;
}