// { dg-do assemble  }
// Make sure we can initialize a reference to a templated type, that
// requires a conversion from a derived type to a base type.
// prms-id: 3524
struct cc2Vector
{};
template <class T>
struct ccPair
{
    ccPair (const cc2Vector&);
};
struct ccLine  : cc2Vector
{
    double distToPoint  (const ccPair <float> &);
};
void foo ()
{
    ccLine l2;
    l2.distToPoint (l2);
}