これって駄目なんだね
なんかハマって脱力した

struct Base
{
protected:
  void Function(){}
};

struct Derived : Base
{
  Derived(Base *b)
  {
    Base::Function();  // OK
    b->Function();  // NG
  }
};