// conversion ops should be treated as coming from the most derived class
// for overload resolution.  See [over.match.funcs].
// Build don't link:

class X {
public:
  operator bool() const;
};

class Y : public X {
private:
  operator void*() const;
};

int f(Y const& y) {
  return bool(y);
}
